題 什麼是ssh-keygen產生的randomart?


當您生成密鑰時,您會從較新版本的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.|
+-----------------+

330
2017-08-13 22:37


起源




答案:


randomart意味著人類可以更輕鬆地驗證密鑰。

驗證通常通過比較無意義的字符串(即密鑰指紋的十六進製表示)來完成,人類在比較時非常慢且不准確。 Randomart將其替換為更快速,更易於比較的結構化圖像。

這篇報告 “Hash Visualization:一種改進現實世界安全的新技術”,Perrig A.和Song D.,1999,國際密碼技術和電子商務研討會(CrypTEC '99)“ 解釋了一些技術和優點。


247
2017-08-13 22:47



如果您可以解釋為什麼人類驗證密鑰,這可能有所幫助,因為坦率地說,我傾向於將我的公鑰放在我的authorized_keys文件中並完成它。 - dlamblin
@dlamblin:你通常不會用這個驗證你自己的密鑰。但是,它對於驗證遠程機器的主機密鑰很有用。一個想法是,如果您從不同位置登錄到特定計算機(或者您沒有將其密鑰保存到known_hosts文件中),您將能夠識別主機密鑰的“藝術”。如果這種藝術突然改變了,你應該小心輸入你的密碼,因為這可能意味著你的連接正在進行中間人攻擊(或者它可能意味著主機剛剛更改了其他人的密鑰)原因)。 - Chris Johnsen
嗯,我什麼時候可以看到主持人的藝術? (我想我從未這樣做過。)我在生成密鑰對後才看到這樣的圖像。並且我需要將它與它進行比較以識別“突然”變化。 - DerMike
我打賭randomart遵循與完整性檢查的哈希相似的原則,即:輸入中的微小差異會產生完全不同的輸出。這意味著你只需要記住預期的randomart的粗糙形狀,以便能夠注意到有些不對勁。當然,當SSH等人沒有向您顯示您正在連接的主機的randomart時,這在實踐中不起作用(即使已知主機,它們也應該這樣做)。 - Alan Plum
我想這些在復製完成後親自交換公鑰進行完整性檢查時最有用。 - jordanpg


-o VisualHostKey=yes 

到您的命令行,或放

VisualHostKey=yes 

在你的 ~/.ssh/config

你會看到你登錄的盒子的randomart。如果你有一天登錄,隨機藝術是不同的(你的大腦應該去嘿!我不認識!),那麼也許有人是黑客,或者其他什麼。

這個想法是你不自覺地需要這樣做。我們其中一台機器的鑰匙之一看起來像蝴蝶。另一種看起來像雞巴(是的,我們的大腦是原始的)。如果您每天登錄,您甚至無需嘗試即可熟悉圖像。


178
2018-01-05 00:49



不是很好。如果您之前已登錄,則計算機可以更好地使用存儲的指紋進行識別。該功能僅用於登錄新計算機。 - Nicholas Wilson
這個問題遲到了,但值得指出的是,如果您從不具備所有known_hosts的其他計算機登錄,這將非常有用。在這種情況下,計算機將無法驗證它是否已知,但用戶應該能夠看到“看起來與正常情況不同!”並且中止。 - Xkeeper
讓您的計算機進行識別很容易受到您自己的計算機已知主機被黑客攻擊。就像你不應該讓你的電腦為你輸入密碼一樣,你最好自己驗證主機的密鑰。 - Marko Topolnik


官方公告: OpenSSH 5.1發布

介紹實驗性的SSH指紋   ASCII可視化到ssh(1)和   SSH-KEYGEN(1)。視覺指紋   顯示由新的控制   ssh_config(5)選項“VisualHostKey”。   目的是呈現SSH主機密鑰   以適合的視覺形式   容易回憶和拒絕改變   主機密鑰。這項技術的靈感源自   圖形哈希可視化   被稱為“隨機藝術[*]”的計劃,以及   丹·卡明斯基(Dan Kaminsky)在23C3時的沉思   柏林。

指紋可視化是   默認情況下,當前禁用   用於生成隨機的算法   藝術仍有待改變。


35
2017-08-13 22:48



確實,最後一句話值得了解。 關於OpenSSH 6.8發布的OpenBSD Journal @ Undeadly.org信息 聲明,“請注意,可視主機鍵也會有所不同。”較新的軟件顯示的圖像與舊軟件顯示的圖像不同。 - TOOGAM


您可以在短文中找到對VisualHostKey randomart的深入分析 醉酒的主教


25
2017-09-04 11:35





生成ssh-keygen後顯示的Randomart是您剛生成的密鑰的圖形表示。然後:

  • Randomart是  真 有用 為了 生成ssh-key的用戶 

  • Randomart非常好 有用 對於通過SSH使用連接的用戶 經常聯繫 到了 同一台服務器:如果他在他的SSH命令中添加了“-o VisualHostKey = yes”選項:

    ssh user@domainname.com -o VisualHostKey =是的

將顯示與服務器的公鑰對應的Randomart。

要查看示例,您可以嘗試:

ssh git@github.com -o VisualHostKey = yes

在用戶經常連接到同一服務器的情況下,他可以 快速輕鬆地檢查他是否認出了Randomart 對應公鑰 這個服務器 或不。這比檢查公鑰本身的字符串更容易,更快!


9
2018-05-04 13:30