“永久添加了 RSA 主机密钥”是什么意思?

loo*_*und 4 ssh ssh-agent

我对 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.

我的问题是:

  • 到底是怎么回事?当我的 Unix 提示我输入本地密码时,我是否刚刚创建了一个新身份?
  • 在哪里可以找到由 列出的身份的公钥和私钥ssh-add -l?为什么我不能删除身份ssh-add -D
  • 为什么我成功连接到Bitbucket,而我没有在帐户管理器中添加公钥,而不是我之前创建的公钥ssh-keygen
  • 我注意到这可能与~/.ssh/known_hosts文件有关,但我不知道文件的用途是什么,它与整个 SSH 业务有什么关系?

我在互联网上四处寻找有关 SSH 如何工作、Unix 如何管理公钥/私钥和身份以及 known_hosts 文件如何发挥作用的一些解释,但我找不到任何解释。对外部文章的任何解释或参考将不胜感激!

更多上下文: 以前,我创建了一对新的公钥/私钥并将其添加到 ssh-agent(并将公钥复制到 Bitbucket,按照 Bitbucket 的说明)。然后我把电脑关了,第二天又打开了。当我尝试这样做时git fetch,系统提示我输入我的本地用户密码,并出现上述警告。然后是我的问题和困惑。

EEA*_*EAA 7

关键字有主机密钥。第一次连接到主机时,您会看到该主机公钥的指纹。服务器本身也有一个密钥对,就像用户一样。

这个想法是你可以用你知道的服务器指纹来验证指纹,以确保你没有被中间人攻击。

一旦您接受主机密钥,它就会保存在您的 known_hosts 文件中,您的客户端将使用该文件来验证所有后续连接。

如果主机密钥意外更改,您的客户端会注意到并显示令人讨厌的错误消息,提示可能出现问题,您应该检查一下。