私人Github存储库与特使

时间:2015-03-07 10:06:40

标签: deployment laravel-envoy

使用私人Github回购时,有任何人在使用Laravel的特使时遇到任何问题吗?

当从生产服务器手动克隆我的repo时,ssh键似乎是可访问的,但是当使用Envoy时,我总是得到一个" Permission denied(publickey)错误。

Envoy problem

由于

2 个答案:

答案 0 :(得分:1)

可能是因为远程服务器上的ssh密钥需要密码。

如果您更改Envoy.blade.php以执行其他任务,您应该能够确定是否正确连接到遥控器。

@servers(['web' => 'user@domain.com'])

@task('deploy')
    cd /path/to/site
    git status
@endtask

应该返回类似的内容:

[user@domain.com]: On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean

如果您使用Mac或Linux进行连接,则可能无需输入密码,因为您的终端正在使用ssh-agent来静默处理您的身份验证。

Wikipedia article on ssh-agent

通过ssh连接时,ssh-agent没有运行,系统会提示脚本输入失败的密码。

要解决此问题,您可以在远程计算机上生成一个不使用密码的新密钥。

如果要将ssh密钥限制为GitHub上的单个存储库,请查看deploy keys

答案 1 :(得分:1)

您需要传递 -A (根据手册页 - 启用转发身份验证代理连接。这也可以在配置文件中基于每个主机指定)你ssh string。

您还需要添加用于代理转发的ssh密钥(在可以访问我认为是您的本地主机的git远程计算机上)

ssh-add -K ~/.ssh/your_private_key

像这样的东西

@servers(['web' => '-A user@domain.com'])

@task('deploy')
 cd /path/to/site
 git status
@endtask

Git远程命令现在可以正常工作。