
我有 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]