生成密钥时,会从较新版本的OpenSSH中获得“ randomart”。我找不到原因的解释,以及为什么要使用它。

Generating public/private rsa key pair.
The key fingerprint is:
05:1e:1e:c1:ac:b9:d1:1c:6a:60:ce:0f:77:6c:78:47 you@i
The key's randomart image is:
+--[ RSA 2048]----+
|       o=.       |
|    o  o++E      |
|   + . Ooo.      |
|    + O B..      |
|     = *S.       |
|      o          |
|                 |
|                 |
|                 |
+-----------------+

Generating public/private dsa key pair.
The key fingerprint is:
b6:dd:b7:1f:bc:25:31:d3:12:f4:92:1c:0b:93:5f:4b you@i
The key's randomart image is:
+--[ DSA 1024]----+
|            o.o  |
|            .= E.|
|             .B.o|
|              .= |
|        S     = .|
|       . o .  .= |
|        . . . oo.|
|             . o+|
|              .o.|
+-----------------+


评论

您可以在简短的论文《醉酒的主教》中找到对VisualHostKey randomart的深入分析。

我想问的另一个问题是:与他人分享您的randomart图像是否安全?换句话说,给定诸如上述的randomart图像,是否可以将其反向工程回密钥?

@ AndyJ0076 randomart是PUBLIC密钥指纹的可视化图像,因此很安全:-)

我想知道看到蒙娜丽莎的钥匙对应该是什么

#1 楼



验证通常是通过比较无意义的字符串(即密钥指纹的十六进制表示)来完成的,人类的速度很慢并且比较不准确。

这篇论文“哈希可视化:一种改善现实世界安全性的新技术”,Perrig A. and Song D.,1999,国际密码技术和电子商务研讨会(CrypTEC '99)”介绍了一些技术和优势。

评论


如果您能解释为什么人们会验证密钥,那将会有所帮助,因为坦率地说,我倾向于将我的公共密钥放在我的authorized_keys文件中并完成它。

– dlamblin
09年9月6日在5:10

@dlamblin:您通常不会以此来验证自己的密钥。但是,这对于验证远程计算机的主机密钥很有用。一个想法是,如果您从不同位置登录到特定计算机(或者您不将其密钥保存到known_hosts文件中),则将能够识别出主机密钥的“艺术性”。如果这种方式突然改变了,您应该警惕输入密码,因为这可能意味着您的连接正在进行中间人攻击(或者可能意味着主机刚刚更改了其他密钥原因)。

–克里斯·约翰森(Chris Johnsen)
09-10-27在5:43

嗯,什么时候可以看到主持人的艺术品? (我想我从未做过。)在生成密钥对之后,我才看到这样的图像。我将不得不与之进行比较以识别“突然的”变化。

–DerMike
2011年2月9日在10:15

我敢打赌,randomart遵循与哈希完整性检查类似的原理,即:输入的微小差异会产生完全不同的输出。那意味着您只需要记住预期的随机艺术的粗略形状就可以注意到有些不对劲。当然,当SSH等没有向您显示要连接的主机的随机方式时,这实际上是行不通的(即使知道主机也应该这样做)。

–艾伦·梅
2011-2-25在16:22

我想这些在复制完成后亲自交换公钥进行完整性检查时最有用。

–jordanpg
2014年10月2日23:53

#2 楼

在命令行中添加

-o VisualHostKey=yes 


,或将

VisualHostKey=yes 


放入~/.ssh/config中。

您将看到正在登录的盒子的随机图案。如果您登录某一天并且随机艺术有所不同(您的大脑应该走开,嘿!我不知道!),则可能有人正在黑客入侵或其他原因。
想法是您不需要自觉地去做。我们其中一台机器的钥匙之一有点像蝴蝶。另一个有点像鸡巴(是的,我们的大脑很原始)。如果每天登录,您甚至都不会尝试使用这些图像。

评论


不是很好。如果您以前登录过,那么计算机使用存储的指纹为您进行识别会更好。该功能仅用于登录新计算机。

–尼古拉斯·威尔逊(Nicholas Wilson)
2012年5月21日13:55

这个答案来得很晚,但是值得指出的是,如果您从不具有所有known_hosts的另一台计算机上登录,这将非常有用。在这种情况下,计算机将无法验证其已知信息,但是用户应该能够看到“这看起来与正常情况大不相同!”然后中止

– Xkeeper
2012年10月3日19:56

让您的计算机进行识别很容易受到您计算机已知主机的攻击。就像您不应该让计算机为您输入密码一样,最好自己验证主机的密钥。

– Marko Topolnik
15年5月25日在17:54



@MarkoTopolnik:如果您不信任自己要连接的本地计算机,则不应使用该计算机执行任何操作,更不用说使用SSH了。就您所知,ssh可执行文件本身可能已替换为危险的版本。

– Lie Ryan
19年12月11日,下午3:58

@LieRyan好点了,我们如何防止这种情况发生?由于我无法手动解密位,因此我们需要一些“在被篡改时会失败”的工具。您是否了解我们如何发现这一点?可以发现有人在何时使用政府介入的黑客入侵的固件/硬件?

–paul23
6月19日12:34

#3 楼

官方公告:OpenSSH 5.1已发布


向ssh(1)和
ssh-keygen(1)引入实验性SSH指纹
ASCII可视化。可视Fingerprinnt
显示由新的
ssh_config(5)选项“ VisualHostKey”控制。
目的是以可视形式呈现SSH主机密钥

易于调用和拒绝已更改的主机密钥。这项技术的灵感来自
图形化哈希可视化方案
,被称为“随机艺术[*]”,而
则是丹·卡明斯基(Dan Kaminsky)在23C3柏林的沉思中想到的。 br />指纹可视化功能默认情况下处于禁用状态,因为用于生成随机图像的
算法仍会更改。


评论


最后一句话的确值得知道。有关OpenSSH 6.8发行状态的OpenBSD Journal @ Undeadly.org信息,“请注意,可视主机密钥也将有所不同。”较新的软件显示的图像与较旧的软件显示的图像不同。

– TOOGAM
15/12/28在7:29

#4 楼

生成ssh-keygen后显示的Randomart是刚刚生成的密钥的图形表示。然后:


对于生成ssh密钥的用户,Randomart并不是真正有用的

Randomart对于使用通过SSH通常连接到同一服务器:如果他在SSH命令中添加了“ -o VisualHostKey = yes”选项:





将显示与服务器公钥相对应的Randomart。

要查看示例,您可以尝试:


ssh git@github.com -o VisualHostKey = yes


如果用户经常连接到同一服务器,则他可以快速而轻松地连接检查他是否识别与该服务器公钥相对应的Randomart。这比检查公钥本身的字符串更容易,更快捷!

评论


您也可以将其添加到ssh / config文件中VisualHostKey = yes-这是我在其中找到该信息的地方safematix.com/system/linux/ssh-visualhostkey

–nynynik
3月4日17:29