这是我收到的错误:
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密钥列表中。我还应该做什么?
答案 0 :(得分:6)
当您生成id_dsa
时,SSH客户端会告诉您id_rsa
(注意" d" - 它代表DSA)(请注意" r"代表RSA)。
您应该生成DSA密钥或告诉SSH哪个"身份" (私钥)使用。这可以使用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;消息实际上是警告。