我正在设置一个git repo来使用SSH访问而不是HTTPS,我遇到了一些问题。
我已正确生成密钥并正确地将公钥添加到GitHub用户的帐户。我知道密钥是正确的,因为我已成功在测试服务器上为此特定用户添加了SSH访问权限。
我也正确设置了远程网址(即git@github.com:user / project.git),尽管这是在任何关键的废话发生之前完成的。
以下是我到目前为止在生产服务器上所做的工作。
我在OWNS本地存储库的用户目录中创建了~/.ssh/config
文件。我在生产服务器中出现的主机,主机名,用户和身份文件完全添加。然后我尝试验证密钥并遇到错误:首先我运行了eval "$(ssh-agent -s)"
。这工作并吐出PID。然后我跑了ssh-add ~/.ssh/id_rsa
并且拒绝了许可。然后我sudo'd那个命令并得到一个错误:
“无法打开与身份验证代理的连接。”
我发现这很奇怪,并且能够找到一个涉及运行的解决方案
sudo ssh-agent sh -c 'ssh-add ~/.ssh/id_rsa
这促使我输入了密码,我输入密码并得到密钥已添加的消息。
在测试服务器上,这似乎就是所有需要完成的事情。但是,当我使用ssh -T git@github.com
在生产服务器上测试连接时,我收到消息“Hello WRONG_USER ...”。其中WRONG_USER是一个不再具有repo访问权限的旧用户。我知道这个用户没有访问权限,因为当存储库肯定存在时,运行git pull origin master
会给我一个“Error:Repository Not Found”。
任何人都可以弄清楚究竟是什么我做错了吗?我怀疑可能是文件权限不稳定并影响密钥身份验证。我不知道为什么我必须su_ ssh-add
命令。
我的目标是在运行ssh -T git@github.com
时看到github的“Hello CORRECT_USER ...”,其中CORRECT_USER是我正在为其添加密钥的用户。
如果需要,我很乐意提供更多信息。任何建议都将不胜感激。