1

我将我的 repo 连接到 Codeship,它运行测试,然后最终通过 SSH 在我的服务器上运行一个脚本:

ssh deploy@my.server '/var/www/deploy-script.sh'

deploy在我的服务器上,我设置了我的用户。我将该用户的公钥存储在我的 github 帐户中。我的项目的代码公共密钥也存储在~/.ssh/authorized_keys.

在里面deploy-script.sh,我正在导航到 repo 目录,然后尝试git pull。显然,我需要在没有密码的情况下下载最新的代码,因为它是在 codeship 上的虚拟机上运行的。Codeship 显然能够通过 SSH 连接到我的服务器并运行部署脚本,但是日志报告:

> Pull updates from Github.
Permission denied (publickey).
fatal: Could not read from remote repository.

如果我以用户身份登录我的服务器deploy并正常运行脚本,并且git pull工作正常。

我错过了什么?为什么github在以部署用户而不是我身份登录时不允许访问?

4

1 回答 1

1

似乎我忽略了ssh-agent登录会话之间没有持续存在,所以下次我以部署用户身份登录时,我也收到了权限被拒绝错误。ssh-add在添加我的身份之前我不得不再次这样做,我可以从 github 中提取。为了让它持续存在,我按照这里的说明操作:在 Ubuntu 上使用 ssh-add 永久添加私钥

将以下内容添加到~/.ssh/config

IdentityFile ~/.ssh/deploy-key
于 2016-02-26T10:51:24.023 回答