ssh报错:no such identity: /xxx/xxx/.ssh/id_rsa: No such file or directory.Permission denied (publickey)解决方案
最近在使用ssh方式连接公司跳板机时报错:
Warning: Permanently added 'xxx' (ECDSA) to the list of known hosts.
no such identity: /xxx/xxx/.ssh/id_rsa: No such file or directory
no such identity: /xxx/xxx/.ssh/id_dsa: No such file or directory
no such identity: /xxx/xxx/.ssh/id_ecdsa: No such file or directory
Permission denied (publickey).
之前在Win上使用是正常的,从Win上复制到Mac之后,ssh连接报这个错误。网上找了很多方法,虽然很有道理,也应该能覆盖满多错误场景了,但是很遗憾没有覆盖我本次的错误场景。
后来进行分析之后,解决了上述问题,也给大家一个遇到上述问题的一个参考解决方案。
解决方式:
利用自己电脑的 ssh-agent 的工具比如 ssh-add 加好自己的 key
ssh-add 私钥
ssh-add
是一个命令行工具,用于将 SSH 私钥添加到 SSH 代理中。SSH 代理是一个在后台运行的进程,可以管理和存储 SSH 密钥,以便在 SSH 连接时自动提供它们,而无需用户手动输入密码。具体来说,
ssh-add
命令可以将指定的私钥添加到 SSH 代理中,使得该私钥在后续的 SSH 连接中可用。如果私钥已经被添加到代理中,则ssh-add
命令只会将该私钥从磁盘中删除,而不会从代理中删除。例如,要将名为
id_rsa
的私钥添加到 SSH 代理中,可以使用以下命令:ssh-add ~/.ssh/id_rsa
在执行此命令后,系统会提示您输入私钥的密码,以便将其添加到 SSH 代理中。如果密码正确,私钥将被添加到代理中,并且以后的 SSH 连接将自动使用该私钥进行身份验证。
需要注意的是,
ssh-add
命令只会将私钥添加到当前的 SSH 代理中。如果没有运行代理,或者代理已经退出,则需要重新运行ssh-agent
命令来启动 SSH 代理。
这一步应该是在使用ssh连接前需要做的一步,而我遗漏了。但我实际上我在连接时也使用命令ssh -i ~/.ssh/private_key
来指定了私钥,不知道为什么是因为没生效吗?后面还需要再抽时间详细研究下,现在先记录下这个问题,提供一种可能的解决方案。
执行后,再次使用ssh即可连接远程主机
另外,附在排错过程中遇到的一些好的解决方案,应该也能覆盖另外大部分一些场景:
[SSH: “no such identity”](https://superuser.com/questions/581809/ssh-no-such-identity)
[SSH Suddenly returning Invalid format]
[GIT no such identity: id_rsa: No such file or directory]文章来源:https://www.toymoban.com/news/detail-670346.html
Warning: Identity file id_rsa not accessible: No such file or directory.文章来源地址https://www.toymoban.com/news/detail-670346.html
到了这里,关于ssh报错:no such identity: /xxx/xxx/.ssh/id_rsa: No such file or directory解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!