我可以使用 SSH 金鑰驗證以不同的使用者名稱登入遠端系統嗎?

我可以使用 SSH 金鑰驗證以不同的使用者名稱登入遠端系統嗎?

假設我有一個名為“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 配置為登入的位置)中找到偵錯輸出。一旦發現問題,請記住將其恢復到發現問題時的狀態。

相關內容