
我在兩台機器上有帳戶:H1 和 H2。我在 H1 上建立了 ssh 金鑰並將其安裝在 S1 上。我現在可以從 H1 ssh 到 S1。我想從 H2 做同樣的事情。如何在 H2 上安裝 H1 上產生的 ssh 金鑰?
答案1
編輯:如果您擁有兩台機器,您可以共享您的私鑰。但這個解決方案不安全對於筆記型電腦被盜或您不擁有的機器的情況。
如果您想使用相同的私鑰從H2登入S1,您可以將私鑰從H1複製到H2。當您在 H1 時,請執行以下命令:
H1$ ssh H2 mkdir ~/.ssh
H1$ scp ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/
警告!這將刪除並替換您在 H2 擁有的任何私鑰。
更好的方法是在H2上產生新的私鑰(ssh-keygen
)並在 S1 上安裝其公共部分ssh-copy-id
實用程式。在這種更安全的情況下,您將擁有兩套鑰匙;第一個用於 H1-S1 登錄,第二個用於 H2-S1 登入。 S1 將授權兩個公鑰。您將能夠撤銷其中任何一項或全部撤銷(例如,當您的筆記型電腦被盜,或者電腦的所有者決定停用您的帳戶並重新使用您的所有文件時)。
答案2
使用ssh-copy-id
概要
ssh-copy-id [-i [身分檔案]] [使用者@]機器
描述
ssh-copy-id 是一個使用 ssh 登入遠端電腦並將指示的身份檔案附加到該電腦的 ~/.ssh/authorized_keys 檔案的腳本。
答案3
使用兩個私鑰
使用相同的過程設定 H2(但是不是與設定 H1 時相同的私鑰):
- 從來沒有充分的理由從其他機器複製私鑰。如果您尚未在 H2 上產生新的私鑰,請立即執行此操作。同時產生對應的公鑰。在 H2 的航站樓中,
類型:ssh-keygen -t rsa
- 將 H2 的公鑰複製到伺服器。在 H2 的航站樓中,
類型:ssh-copy-id [email protected]
(但在 S1 上使用您的實際使用者名稱和 S1 的主機名,稍後在 S1 要求時輸入您的密碼)。
這會將工作站的公鑰安裝到~/.ssh/authorized_keys
伺服器上該使用者的檔案中。
- 沒有步驟3。
細節
我認為你真正要問的是
- 我有一台伺服器(“S1”)
- 我從我的個人筆記型電腦(“H1”)登入我的伺服器
- 我還想從我的工作站(“H2”)登入我的伺服器。
這樣做的正確方法是什麼?
- 我想我可以簡單地從兩個地方使用相同的密碼登入。這不可能是正確的方式,因為每個人都說公鑰身份驗證比密碼好得多。(A)
- 我想我可以簡單地將私鑰從筆記型電腦複製到我的工作站。這不可能是正確的方法,因為每個人都說私鑰永遠不應該離開客戶端電腦。
人們牢記在心的是,伺服器上的一個帳戶只有一個用戶名,當然還有一個授權密碼。
像 ssh 這樣的公鑰系統比密碼系統更好:伺服器上的一個帳戶有一個使用者名,並且任意數量的授權公鑰,所有這些都在~/.ssh/authorized_keys
文件中列出。
(更多細節)。