iT邦幫忙

0

SSH 公開金鑰應是哪一方產生?

想請教:
如果(電腦A)透過SSH 備份/連入 到 (電腦B), 應該是(電腦A)還是(電腦B)產生公開金鑰給對方?

之後是否將以下格式之金鑰 直接貼上到對方的authorized_keys檔案之中:
ssh-rsa 4bxxxxxxxxxxxxxxxxxxxxxxeWY user@abcdefg.com

謝謝~~

weiclin iT邦高手 4 級 ‧ 2018-02-27 15:24:21 檢舉
公鑰跟私鑰一起產生的, 你當然不會想叫別人幫你生私鑰吧?
sasad000 iT邦新手 5 級 ‧ 2018-02-27 16:59:51 檢舉
就是搞不清 應該A 產生公鑰 給B , 還是B產生公鑰 給A 呢~
4
raytracy
iT邦大神 1 級 ‧ 2018-02-27 15:29:24
最佳解答

先分清楚:
授權者是誰? 授權者只須持有被授權者給予的公鑰
被授權者是誰? 他必須持有對應私鑰, 並負責產出公鑰

若 A 授權 B 可以進入, 那 B 要用他的私鑰, 產出一把公鑰, 塞進 A 裡面. B 則要顧好她對應的那把私鑰, 不可外流.

當 B 想要登入 A 的時候, A 會拿公鑰出來, 將一個隨機的 256 字元加密, 將結果傳送給 B, 挑戰看看 B 能否解密? 

由於只有 B 擁有正確對應的解密私鑰, 所以 B 拿私鑰解密出來的結果, 送回去給 A, A 核對結果, 若跟當初產生的隨機字元相符, 就認定解密成功, 允許 B 登入.

如果 A 把加密結果送給 C, 由於 C 沒有對應的私鑰, 他拿任何一把私鑰去解, 結果都不會跟 A 的字元相同, 於是無法通過驗證.

以上是原理.....回到您的問題: (電腦A)透過SSH到(電腦B)

此時應該是: 「B 授權 A 可以進入」, 也就是...
B = 授權者 - 授權者只須持有被授權者給予的公鑰
A = 被授權者 - 他必須持有對應私鑰, 並負責產出公鑰

所以公私鑰都由 A 產出, 將私鑰留在 A 電腦中, 公鑰則塞進 B 電腦的 know_hosts 裡面去...

sasad000 iT邦新手 5 級 ‧ 2018-02-27 16:57:04 檢舉

感謝,很清楚詳細~
可否簡單介紹以下fingerprint , randomart image有何作用, 是保密不應公開的?

The key fingerprint is:
SHA256:Up6KjbnEV4Hgfo75YM393QdQsK3Z0aTNBz0DoirrW+c ylo@xxx

The key's randomart image is:
+---[RSA 2048]----+
| . ..oo..|
| . . . . .o.X.|
| . . o. ..+ B|
| . o.o .+ ..|
| ..o.S o.. |
| . %o= . |
| @.B... . |
| o.=. o. . . .|
| .oo E. . .. |
+----[SHA256]-----+

黃彥儒 iT邦高手 1 級 ‧ 2018-02-27 18:13:46 檢舉

都是人看的東西,都可以公開....話說Google一下就有了

0
haoming
iT邦好手 1 級 ‧ 2018-02-27 16:01:34

不是我方.

0
pupuliao
iT邦新手 5 級 ‧ 2018-03-01 10:12:59

每個人都要產生 自己的 公鑰跟私鑰,在要通訊時會互相交換自己的公鑰

你在做的這件事 也是手動把 A電腦的公鑰放在B電腦中

另外 你問的 fingerprint , randomart image 功用,把這兩個關鍵字丟google 就有一海票的說明 fingerprint 是給電腦看的, randomart image是給人看的沒有實際用處

我要發表回答

立即登入回答