ssh_config 可视主机密钥(是 否)选项

six*_*ees 1 ssh

/etc/ssh/ssh_configssh_visual host key no选择。它有什么作用?


编辑:确实,视觉的,而不是虚拟的。不过,它控制着什么?

Tho*_*ard 6

首先,考虑这是系统范围内的/etc/ssh/ssh_configSSH客户端配置。这意味着每当您ssh从计算机连接到远程服务器时,此配置都会发挥作用。

默认情况下,当您第一次连接到服务器时,系统会要求您说明来自远程服务器的 SSH 指纹是否是“预期”,以便您可以验证该服务器是否真正合法(服务器管理员可以告诉您服务器的指纹是什么,然后您可以根据他们告诉您的内容验证您在 SSH 客户端中看到的内容)。大多数最终用户不会自己逐个字符地验证指纹。

但是,我们在密钥生成中看到了一个额外的组件,默认情况下我们在 SSH 指纹验证中看不到该组件。这被称为“随机艺术”,每个钥匙/指纹都应该有一个独特的随机艺术。

考虑一下我刚刚生成的这个密钥,当然是在仿生容器内的“假”密钥。它向我们展示了随机艺术指纹:

The key fingerprint is:
SHA256:xtaA8biLm/Jktn9A/j2sty686uosrRtz0GQIFw6nP2s root@bionic
The key's randomart image is:
+---[RSA 4096]----+
|o +.  .          |
| B .   =         |
|. o o o o        |
| . +  .o o       |
|  + .o. S .      |
|   + .o+         |
|  E.* .+ o       |
| .oO.+  = =      |
|  oBO++oo*oo     |
+----[SHA256]-----+
Run Code Online (Sandbox Code Playgroud)

主机密钥的视觉图像背后的想法是,最终用户可能不会逐个字符地验证指纹,而只会依靠前几个和最后几个字符来“浏览”指纹。事实上,正因为如此,威胁行为者可能会尝试通过生成与指纹中的前几个和最后几个字符匹配的密钥来“模仿”,以“欺骗”人们,因为他们不太可能逐个字符地进行操作字符指纹验证。

这就是随机艺术作品发挥作用的地方 - 不同的键,即使它们具有相同的“第一个”和“最后一个”位,对于不同的键也会有不同的随机艺术,标准用户将能够发现这是一个重大差异(除非他们进行逐个字符的指纹识别/比较,否则不会在钥匙本身上发现)

默认情况下,SSH 客户端不显示远程密钥的随机性(VisualHostKey no默认设置)。但是,如果您在配置文件中设置VisualHostKeyyes取消注释该行,那么系统还会向您显示远程密钥的随机艺术,以帮助用户“验证”服务器指纹是否有效。

VisualHostKey首先,一个没有设置为的示例on

$ ssh -p 22 teward@10.73.250.210
The authenticity of host '10.73.250.210 (10.73.250.210)' can't be established.
ECDSA key fingerprint is SHA256:ZDA6BYWGmr0ftUqQxCu1CsaonKqKKUM3fbMzKUlMorE.
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)

现在出现相同的提示,但显示随机艺术 ( VisualHostKey yes):

$ ssh -p 22 teward@10.73.250.210
The authenticity of host '10.73.250.210 (10.73.250.210)' can't be established.
ECDSA key fingerprint is SHA256:ZDA6BYWGmr0ftUqQxCu1CsaonKqKKUM3fbMzKUlMorE.
+---[ECDSA 256]---+
| . ..+=          |
|  = oo o         |
|o* =o   o        |
|*+*. o.o         |
|=o=o=. .S        |
|oE.oo+.o         |
|o .oooo +        |
|=.  oo =         |
|O.    . o        |
+----[SHA256]-----+
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)

与指纹的文本表示相比,确定服务器的随机艺术是否“有效”要容易得多,不是吗?

(请注意,这是联机帮助页有关该配置选项的“长”描述,并且通过视觉示例等可能比干巴巴的联机帮助页解释更容易理解)