我正在尝试从另一台服务器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命令有效
答案 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帐户。
以下文件将指出正确的方向: