SSH密钥和IP地址

一位同事不断提及与IP地址相关的SSH密钥,但我不确定它究竟意味着什么。 所以我试图生成一个SSH密钥,它有我的主机名在文件的末尾。 当我们讨论在一堆主机之间共享主机密钥的时候,这个讨论可以起来,这里主机密钥没有任何主机DNS或者IP地址。 有人可以解释一下主机密钥文件中的dns / ip地址是如何与密钥本身关联的,以及它缺less的含义? 谢谢。

密钥末尾的IP地址或主机名只是一个注释。 默认情况下,您的用户名和密钥生成的主机名写在那里,但是为了validation而忽略它。

如果你想locking一个授权的ssh密钥,以便它只能从特定的主机使用,你可以把它放在你的authorized_keys文件中:

 from="192.168.0.0/24" ssh-rsa BLAHBLAHYOURKEYGOESHERE someone@somewhere ^^^^^^^^^^^^^^^^^ -- comment 

目前还不清楚哪个是你的意思,但收集和存储地址的许多SSH相关的文件是known_hosts (〜/ .ssh / known_hosts和如果configuration/ etc / ssh / known_hosts)file./这存储主机的密钥你已经连接并被用来试图阻止中间人的攻击。

当你通过SSH连接到远程主机时,它会发送给你的是公钥。 你的SSH客户端将检查known_hosts:

  1. 如果您之前已经连接过,则会比较刚刚发送的密钥和之前保存的密钥。

    • 如果他们是相同的,那么连接就会顺利进行
    • 如果它们不同,则客户端停止连接并发出错误消息。
  2. 如果您以前没有连接过,您的客户端将显示远程主机的指纹,并要求您确认其真伪。

    • 如果您对密钥进行身份validation,则将其存储在known_hosts中供以后使用(请参阅上文)
    • 如果您没有对密钥进行身份validation,则连接已停止。