为什么Git忽略〜/ .ssh / id_rsa,想要〜/ .ssh / id_dsa或〜/ .ssh / id_ecdsa?

时间:2013-04-17 16:00:33

标签: git ssh

这是我收到的错误:

no such identity: /home/eduan/.ssh/id_dsa: No such file or directory
no such identity: /home/eduan/.ssh/id_ecdsa: No such file or directory
Permission denied (publickey).

当我尝试推动时会发生这种情况,或者在我做ssh -T git@github.com的时候会发生这种情况。

我已经正确生成了id_rsa和id_rsa.pub文件。

我怎么能解决这个问题?我正在使用Arch Linux和E17 BTW。

修改
@kortix会为此做以下工作吗?:

Host github.com
    IdentityFile ~/.ssh/id_rsa

它似乎对我不起作用......当我用Git推动时,我得到以下内容:

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

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

我确保存在repo,并且还使用git remote set-url origin git@github.com:Greduan/dotfiles.git更新了远程URL。

我还将SSH密钥添加到GitHub中接受的SSH密钥列表中。我还应该做什么?

1 个答案:

答案 0 :(得分:6)

当您生成id_dsa时,SSH客户端会告诉您id_rsa(注意" d" - 它代表DSA)(请注意" r"代表RSA)。

您应该生成DSA密钥或告诉SSH哪个&#34;身份&#34; (私钥)使用。这可以使用IdentityFile远程Host文件中自定义~/.ssh/config条目下的github指令来完成(请参阅ssh_config(5)手册页)。< / p>

更新(2013-04-29,为下一位读者提供更清晰的信息)。问题的本质是OP在他的~/.ssh/id_rsa密钥上有错误的所有者(root),因此OpenSSH客户端首先尝试读取该密钥,失败,然后继续尝试阅读~/.ssh/id_dsa和反过来,~/.ssh/id_ecdsa也失败了 - 这次因为它们根本就不存在。没有更多密钥用于pubkey身份验证并且没有可用的身份验证机制,SSH客户端失败。那些&#34;没有这样的身份......&#34;消息实际上是警告。