Я пытаюсь написать общий командный элемент в Node.JS - однако это не так важно.
Моя установка выглядит следующим образом:Выполнение git из node.js в качестве дочернего процесса?
- У меня есть список строковых команд, которые выполняются с использованием
child_process.exec
один за другим. - Я хочу запустить git из одной из этих команд, в частности,
pull
. - Для определения местоположения, которое я вынимаю, требуется аутентификация SSH. HTTPS не вариант.
- Мой закрытый ключ с паролями.
- Я использую в настоящее время
keychain
для управленияssh-agent
.
При запуске git pull
из командной строки это удается. При запуске моего приложения в качестве зарегистрированного пользователя он преуспевает. Однако при запуске моего приложения с использованием forever
он терпит неудачу.
Ошибка, которую я получаю, составляет Permission denied (publickey).
. Я попытался позвонить keychain
как часть моей команды, но я не могу заставить его распознавать учетные данные.
Как это исправить?
Предположим, вам нужно запустить 'git pull' в интерактивной оболочке Bash, чтобы он работал с вашими ключами' ~/.ssh', но дочерний процесс Node запускает команду напрямую без какой-либо среды. – laggingreflex
Попробуйте запустить 'bash -lic ' git pull "' – laggingreflex
Спасибо @laggingreflex - когда я пытаюсь, что 'keychain' сообщает, что он не может найти' id_rsa'. Запуск 'keychain ...; git pull' из 'bash' заставляет команду висеть, предположительно ожидая ввода? –