Ubuntu
SSH 的奇怪行為,未使用正確的密鑰註釋
我正在使用 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)