
假設我有一個名為“remotesystem”的遠端系統,並且在該系統上有一個使用者帳戶“foouser”。
我知道在我的本機系統上,我可以作為本機使用者「foouser」產生 SSH 金鑰對,將公鑰放在「remotesystem」上的「/home/foouser/.ssh/authorized_keys」檔案中。當我以「foouser」從本機系統 SSH 到「遠端系統」時,SSH 使用金鑰對我進行身份驗證。
但是,如果我的本機使用者名稱與遠端系統上的使用者名稱不同怎麼辦?也就是說,如果我想以本機使用者「baruser」身分透過 SSH 存取「remotesystem」怎麼辦?顯然,我需要為“baruser”產生金鑰對並將公鑰新增至“/home/foouser/.ssh/authorized_keys”。然後,我應該能夠在本地以“baruser”身份登入時“ssh foouser@remotesystem”,並且 SSH 將使用金鑰對進行身份驗證,對吧?
我這麼問是因為我試圖在這種情況下使金鑰身份驗證正常工作,但沒有成功。我不確定是否是由於用戶名不匹配,或者遠端系統上的 SSH 伺服器的配置問題。
答案1
是的,您可以這樣做,就像您所描述的那樣。
baruser@here ~$ ssh-add -l 4096 10:b3:fd:29:08:86:24:a6:da:0a:dd:c6:1e:b0:66:6a id_rsa (RSA) baruser@here ~$ ssh foouser@remotesystem mod消息等 foouser@遠端系統〜$
答案2
雖然有點偏題,但是......
如果您始終對遠端伺服器使用相同的使用者名,您可能還會發現將主機新增至 ssh 配置很有用:
Host remotesystem
User baruser
這樣您就不需要記住在登入時指定使用者名,並且在將來遇到金鑰問題時可以排除這種情況。
答案3
您的本機使用者名稱並不重要(除了私鑰必須駐留在本機使用者的主目錄中)。只需將密鑰複製到遠端用戶的authorized_keys
部分即可。
答案4
對於任何與 ssh 相關的問題,首先要做的是調高客戶端的詳細程度:
ssh 使用者@機器-vvv
如果這無法讓您了解問題所在,則需要更改伺服器上的日誌等級並重新啟動守護程序。
日誌等級DEBUG3
您應該在 /var/log/auth.log (或 ssh 配置為登入的位置)中找到偵錯輸出。一旦發現問題,請記住將其恢復到發現問題時的狀態。