Linux

更改通過 ssh 登錄傳遞的私鑰的順序

  • September 13, 2018

伺服器被設置為接受三個登錄嘗試。在選擇正確的一個之前,ssh系統會檢查三個身份文件。

ssh 命令如下:

ssh -i ~/.ssh/username username@xx.xx.xx.xxx -v

三個身份文件如下:

debug2: key: /path/to/.ssh/identity1 
debug2: key: /path/to/.ssh/identity2
debug2: key: /path/to/.ssh/identity3 
debug2: key: /path/to/.ssh/username

如何刪除三個不正確的身份文件?我已經嘗試從目錄中刪除它們,我也嘗試~/.ssh/config 如下更新:

Host xx.xx.xx.xxx  
User username  
IdentityFile ~/.ssh/username

我怎樣才能必須ssh使用正確的身份文件?

查看是否列出了身份文件

ssh-add -l

如果沒有,添加它

ssh-add ~/.ssh/username  

然後能夠選擇正確的身份文件

看起來 ssh 正在嘗試它所知道的所有身份。如果您只想嘗試配置文件中指定的身份,請添加該行

IdentitiesOnly = yes

到您的 .ssh/config 文件的主機部分。

這是ssh_config 手冊頁的相關部分:

IdentitiesOnly 指定 ssh(1) 應該只使用 ssh_config 文件中配置的身份驗證身份文件,即使 ssh-agent(1) 提供更多身份。此關鍵字的參數必須是“是”或“否”。此選項適用於 ssh-agent 提供許多不同身份的情況。預設值為“否”。

引用自:https://unix.stackexchange.com/questions/65563