0

在使用私有 Github 存储库时,任何人在使用 Laravel 的特使部署时有任何问题吗?

从生产服务器手动克隆我的存储库时,ssh 密钥似乎可以访问,但是在使用 Envoy 时,我总是收到“权限被拒绝(公钥)错误。

特使问题

谢谢

4

2 回答 2

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它静默处理您的身份验证。

关于 ssh-agent 的维基百科文章

通过 ssh 连接时,ssh-agent 没有运行,并且脚本被提示输入密码,这是它失败的地方。

为了解决这个问题,您可以在不使用密码的远程机器上生成一个新密钥。

如果您想将 ssh 密钥限制为 GitHub 上的单个存储库,请查看部署密钥

于 2015-03-20T05:53:00.767 回答
1

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

您还需要添加 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 远程命令现在应该可以工作了。

于 2015-08-19T06:37:57.677 回答