我们有一个设置,我们的 git 服务器需要公钥进行身份验证才能推送或拉取。我试图在我们的一台服务器上这样做,但不知道为什么它不起作用。我搜索了又搜索,我发现的所有内容都说只需ssh -A
在登录服务器时运行,这应该会转发允许 git 操作所需的内容,但它不起作用。
在我的本地机器上,我可以 cd 进入一个目录,运行git push origin master
输入我的 ~/.ssh/id_rsa 密码,它可以完美运行。
当我登录到服务器时,我尝试ssh-add ~/.ssh/id_rsa
输入密码,然后运行ssh -A [user]@[server]
,然后登录正常,然后我进入目录并运行git pull
我给出的目录permission denied (publickey)
我不明白为什么它不允许我从服务器推送或拉取,它在本地工作,并且我在 ssh 进入服务器时使用了 -A 标志,但总是permission denied (publickey)
希望对服务器方面更熟练的人能够发现我做错了什么,而且很容易修复。谢谢大家,我很感激你们的时间和帮助
答案1
用于GIT_SSH_COMMAND="ssh -v" git pull
获取详细输出ssh
。
答案2
说实话,我不完全理解你的设置,但总的来说,我建议使用SSH 配置文件对于此类用例。
例如,如果您的服务器名称是my-server.com
,它可能看起来像以下内容:
Host my-server.com
HostName my-server.com
Port 22
IdentityFile ~/.ssh/id_rsa
它将提示您输入私钥的密码。