通过远程机器连接GitHub时出现SSH密钥问题

4

我在远程访问的机器上使用git(github)遇到了一些问题。例如,我通过ssh从家里登录到工作电脑。

me@home$ ssh me@work

之后我尝试在工作电脑上通过家里的网络进行对Github的拉取或推送请求。

me@workViaHome$ git pull origin branch

之后我收到了以下错误:

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

Please make sure you have the correct access rights
and the repository exists.

我尝试使用以下方法从我的工作电脑加载ssh密钥:

me@workViaHome$ eval "$(ssh-agent -s)"
me@workViaHome$ ssh-add ~/.ssh/id_rsa

但仍然没有成功。 当我在工作电脑上时,可以毫无问题地向Github发出请求;因此,看起来我的SSH会话的SSH密钥状态有问题。

感谢任何帮助!


验证你在workViaHome上添加的私钥是否与你在github上添加的公钥匹配。同时,确保~/.ssh目录的访问权限正确。最后,尝试使用与git相同的用户/端口ssh到github,并添加verbose标志以获取更多信息。 - DusteD
所以,我把问题隔离到了ssh-add没有触发git使用~/.ssh/id_rsa密钥,它仍然在尝试使用默认密钥。目前为止,我通过将默认密钥添加到github中来解决了这个问题。我使用ssh -vT git@github.com找出了原因。我仍然不确定为什么ssh会回退到默认密钥。 - BenJ
1个回答

2

如果没有在配置中指定或者ssh-agent没有提供其他密钥,则SSH将使用默认密钥。

如果您在非标准位置使用一个已添加到gnome-keyring中的密钥,您可能会注意到这种行为,因为gnome-keyring仅在图形会话而不是ssh会话中启动。

当然,您可以通过在工作计算机的~/.ssh/config中正确配置此密钥来解决此问题。只需添加以下内容:

Host github.com
  IdentityFile ~/.ssh/path_to_key
  IdentitiesOnly yes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接