SSH公钥文件末尾的用户/主机有什么意义?

我不明白为什么由ssh-keygen生成的SSH公钥文件在其结尾处有一个用户和主机。

例如: id_rsa.pub

 ssh-rsa ... rest of file ... /CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain 

注意文件末尾的root@mydomain

如果我可以在任何用户的任何地方使用公钥来使用我的私钥进行身份validation,那么root @ mydomain对身份validation过程有什么意义?

还是只是一个地方持有人来确定我们是谁发行的?

这个字段是一个评论,可以随意更改或忽略。 它由ssh-keygen默认设置为user@host

关于授权密钥的章节,在sshd(8)手册页中对此进行了简要介绍:

协议2公钥包括: 选项密钥typesbase64编码密钥comment

在授权密钥的openssh环境中,只有注释的含义。 但是有SSH的实现,给这个部分的含义,例如LANCOM调制解调器中的SSH实现是使用这个注释作为密钥有效的用户名。

正如其他人指出的,这是一个评论,让确定哪个关键是哪个。

当查看id_rsa.pub中的单个键时,它并没有太大的区别,但是在查看可能长的键列表(例如authorized_keys文件中的键)时,能够轻松识别哪个键是哪个。

而且, ssh-keygen的默认值是user@hostname ,对于典型的用例,它是一个清楚的标识符,它是哪个键( user@domain不会)。

非常非常简单:我和你是使用机器的人类。 所以看你发布的这个例子:

 ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain 

一台机器可以读取这个:

 ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX 

一个人可以阅读这个评论:

 root@mydomain 

人们往往会忘记,即使计算机系统上的东西看起来很复杂,如果代码只是为了机器消耗而devise的,实际上它们可能会变得更加复杂。 我的意思是看看被隐藏的恶意代码。 一旦你解码和格式化,它是人类可读的。 但是有人不得不走出去让人类难以阅读。

默认情况下,计算机系统上的所有types的编码和configuration文件都是用于人类消费的结构,因为…我们是使用机器和机器的人类,不需要如下的东西:

  • 注释。
  • 压痕。
  • 用可读语言编写的variables和函数

所以评论意味着你和我以及其他人。 这很可能没有评论。 但是有一次在凌晨3点时间不工作,你正在寻找正确的公钥,你会希望/梦想/祈祷评论是在那里的。