如何將 PEM 檔案作為 SSH 私鑰新增至“已知主機”

如何將 PEM 檔案作為 SSH 私鑰新增至“已知主機”

我有 Ubuntu 桌面,並且已獲得一個 PEM 檔案 ( mykey.pem),它是 Linux 伺服器的 SSH 私鑰。我試圖弄清楚這個 PEM 檔案需要放置在我的電腦上本地的什麼位置,以及如何將其配置/添加到我的“SSH 已知主機”。

谷歌搜尋這個主題會發現很多答案/文章創造SSH 金鑰,但不適用於將現有金鑰新增至已知主機。有想法嗎?

答案1

我不知道不同類型的 SSH 金鑰。但是您可以將公鑰放在目標電腦上,而不是您的私鑰。您的私鑰保持私密。

~/.ssh/authorized_keys 並且來源電腦的公鑰應放置在目標電腦上ssh-keygen

我建議您在來源電腦上的公鑰上執行 cat 操作,並在目標電腦上的authorized_keys上執行 cat 操作,並確保來源的金鑰看起來與authorized_keys中的格式相同

known_hosts 檔案是自動附加的。您不需要手動編輯它。即使刪除known_hosts 檔案後您也可以連線。

編輯-

將一些評論合併到答案中。公鑰來自私鑰。通常情況下,私鑰保持私有狀態,但是OP被給予私鑰,這是不尋常的,但這是一種有趣的方法,因為這意味著目標電腦已經可以擁有他的公鑰。這樣他就可以登錄,而無需在目標電腦的authorized_keys 中添加任何內容。 ssh -i 始終採用私鑰。他只需要做ssh -i path/to/privatekeyfile user@dest OP正在使用“openstack”,一些雲端服務,正如openstack網站所說的 docs.openstack.org/user-guide/content/ssh-into-instance.html所以無論私鑰檔案的名稱是什麼是,並且無論它存儲在何處,您都可以在執行時指定$ ssh -i MyKey.pem [email protected]ssh -i

答案2

根據ssh手冊:

-i 身分文件

選擇從中讀取公鑰認證的身份(私鑰)的檔案。對於協定版本1,預設值為~/.ssh/identity;對於協定版本2,預設值為~/.ssh/id_dsa、~/.ssh/id_ecdsa、~/.ssh/id_ed25519 和~/.ssh/id_rsa 。

例如。$ ssh -i mykey.pem [email protected]

您也可以將金鑰新增至身份驗證代理,這樣您就不必每次連接到遠端伺服器時都必須傳遞身分文件:

ssh-add — 將私鑰身分新增至 OpenSSH 驗證代理

例如,之後$ ssh-add mykey.pem您就可以執行.$ ssh [email protected]

相關內容