Ubuntu

SSH 的奇怪行為,未使用正確的密鑰註釋

  • January 13, 2019

我正在使用 Ubuntu 18.04 LTS。

  • 無論何時,我ssh-copy-id第一次username@host按預期將 my 放在 authorized_keys 文件行的末尾。

在遠端機器上:

sacredos@sacredos-DT:~$ cat /home/sacredos/.ssh/auth*
ssh-rsa ... sacredos@sacredos-LT

在本地機器上:

sacredos@sacredos-LT:~$ ssh-add -l
4096 SHA256:... sacredos@sacredos-LT (RSA)
  • 當我轉到ssh-copy-id另一台電腦或後續電腦時,它會將 id 文件的路徑放在那裡。

在清除並重新複製密鑰後的遠端電腦上:

sacredos@sacredos-DT:~$ cat /home/sacredos/.ssh/auth*
ssh-rsa ... /home/sacredos/.ssh/id_rsa

再次複製密鑰後在本地電腦上:

sacredos@sacredos-LT:~$ ssh-add -l
4096 SHA256:... /home/username/.ssh/id_rsa (RSA)
  • 我安裝了一個全新的系統來檢查這不是我對配置所做的事情,但它的行為是一樣的。它是處於清除狀態的同一台機器還是新機器也無關緊要,如果密鑰被 ssh-copy-id’ed 兩次或更多次,就會發生這種情況。

這裡發生了什麼?

ssh-copy-id(1)手冊頁:

沒有 , 的預設行為-i是檢查是否ssh-add -L提供任何輸出,如果是,則使用這些鍵。請注意,這會導致對密鑰的 註釋是在將密鑰載入到您的文件時給出的文件名,ssh-add(1)ssh-agent(1)而不是該文件中包含的註釋,這有點遺憾。否則,如果ssh-add(1) 沒有提供任何鍵的內容,default_ID_file將被使用。

所以你應該總是使案例如。-i ~/.ssh/id_rsa.pub(如手冊中所述)或ssh-agent如果您想保留身份文件中的評論,則無需使用。

請注意,預設情況下,在 debian 上(也可能在 ubuntu 上)GUI 會話作為ssh-agent(查看) 的子程序執行,因此即使您不是故意的/etc/X11/Xsession.d/90x11-common_ssh-agent,您也會使用它。ssh-agent

此外,如果您啟用了該選項(請參閱手冊頁) ,則ssh-agent在執行時ssh(通過)將自動添加密鑰ssh-copy-id,而無需執行。ssh-add``AddKeysToAgent``ssh_config(5)

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