使用私人Github回购时,有任何人在使用Laravel的特使时遇到任何问题吗?
当从生产服务器手动克隆我的repo时,ssh键似乎是可访问的,但是当使用Envoy时,我总是得到一个" Permission denied(publickey)错误。
由于
答案 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远程命令现在可以正常工作。