我对 Unix 及其周围的事物很陌生,特别是这个问题是 SSH 和身份验证。
我知道我可以创建身份(创建一对公钥/私钥),将其放入 ssh-agent 并将公钥复制到远程主机,这样我就可以在不输入密码的情况下通过 SSH 连接到远程主机。如果我错了,请纠正我,但要列出本地系统中的所有注册身份,我只需运行ssh-add -l
.
当我尝试通过 SSH 连接时(特别是,我试图通过 SSH 连接到 bitbucket,这样我就不必一遍又一遍地输入密码),我收到以下警告:
Warning: Permanently added the RSA host key for IP address 'xxx.xxx.xxx.xxx' to the list of known hosts.
在我屈服并继续进行所谓的“永久添加 RSA 主机密钥”之后,我运行ssh-add -l
并注意到我之前创建的一对公钥/私钥没有注册,而是创建了一个新身份。困惑的我检查了其中的内容,~/.ssh/
但除了我之前创建的那个之外,我没有看到任何其他公钥/私钥文件。
我试图通过运行删除身份ssh-add -D
但无济于事:当我运行ssh-add -l
.
我的问题是:
ssh-add -l
?为什么我不能删除身份ssh-add -D
?ssh-keygen
?~/.ssh/known_hosts
文件有关,但我不知道文件的用途是什么,它与整个 SSH 业务有什么关系?我在互联网上四处寻找有关 SSH 如何工作、Unix 如何管理公钥/私钥和身份以及 known_hosts 文件如何发挥作用的一些解释,但我找不到任何解释。对外部文章的任何解释或参考将不胜感激!
更多上下文: 以前,我创建了一对新的公钥/私钥并将其添加到 ssh-agent(并将公钥复制到 …