从另一台服务器ssh并执行git pull

时间:2016-03-10 19:06:28

标签: git ssh

我正在尝试从另一台服务器1 ssh到服务器2并从服务器1执行git pull到服务器2.

所以在服务器1上,我运行以下命令:

ssh root@server2 'cd /root/.example; git pull origin master'

但这给了我错误

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights

它能够ssh,因为当我执行ls时,我会看到/root/.example目录的内容。它只是无法执行git pull origin master,因为它使用了错误的密钥。

我可以采取哪些不同的方式?

我正在使用Centos 6.

当我做ssh root@server2 'cd /opt/example; eval "$(ssh-agent -s)"; ssh-add /root/.ssh/gitkey; git pull origin master'

git pull命令有效

3 个答案:

答案 0 :(得分:1)

server2上的ssh正在使用公钥认证。您需要在server1上创建公钥/私钥对(如果您还没有),然后将公钥放在server2的authorized_keys文件中。

这是一个很好的介绍: https://help.ubuntu.com/community/SSH/OpenSSH/Keys

答案 1 :(得分:0)

在我看来,您的ssh密钥未在服务器2中正确设置,请确保它已设置,您的Server1也可能无法识别ssh密钥。

答案 2 :(得分:0)

您必须为server-1生成SSH密钥,并将公钥添加到您的github帐户。

以下文件将指出正确的方向:

https://help.github.com/articles/generating-an-ssh-key/