从node.js运行git作为子进程?

时间:2015-06-04 21:46:48

标签: linux node.js git ssh debian

我正在尝试在Node.JS中编写一个通用命令运行器 - 但这并不重要 我的设置如下:

  1. 我有一个字符串命令列表,这些命令一个接一个地使用child_process.exec执行。
  2. 我想从其中一个命令运行git,特别是pull
  3. 我要拉的位置需要SSH身份验证。 HTTPS不是一个选项。
  4. 我的私钥是passphrased。
  5. 我目前正在使用keychain来管理ssh-agent
  6. 从命令行运行git pull时,它会成功。以登录用户身份运行我的应用程序时,它会成功。但是,使用forever运行我的应用程序时,它会失败。

    我收到的错误是Permission denied (publickey).。我试过调用keychain作为我命令的一部分,但我无法识别凭证。

    我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我的错误是使用.bash_profile的内容并使用它来设置keychain中的exec

我需要做的是:
. $HOME/.keychain/$HOSTNAME-sh; git pull

通过查找如何将keychainbash脚本一起使用的示例,我发现了这一点。