以 ssh 連線到「遠端主機」,「終端機」畫面一出現,連輸入帳號、密碼的提示文字都沒看清楚,就斷線。(註:有時連「終端機」畫面也沒出現)這是因為 ssh 會將「遠端主機」的 RSA 金鑰暫存在『 ~/.ssh/known_hosts 』這個檔案中,當「遠端主機」
- 重新安裝作業系統
- 重新安裝 ssh 套件
- 重新產生 ssh 的 RSA 金鑰
解決的步驟也很簡單,『懶人招』就是
[SiB@Celeron-D ~]$ rm -f ~/.ssh/known_hosts但是,將所有本地暫存的「遠端主機」金鑰全數刪除,會有一段時間連線時會稍微麻煩些。每次新連線都會問:「是否將金鑰儲存?」,輸入【yes】或【no】的回答後,方繼續連線程序。
想清楚暸解原因,請看以下詳細說明。
一、檢查本地的『已暫存』金鑰
在「終端機」下『 cat .ssh/known_hosts 』這個命令,可以列出『已暫存』的金鑰[Sib@Celeron-D ~]$ cat .ssh/known_hosts這些金鑰以「遠端主機」的「網路位址」和「埠號」為首,接著一連串看似亂碼的文字,就是「遠端主機」的金鑰。
[192.168.10.52]:5566 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDR2pa8jOnwwFIHibH8/VO/zwKYA/1Ved08IhTEKAdyHA9pUxjYx4pfM3ZOtBDY7AcuDUqDfNdS7q7HcVr5OJLxoGE6/iyaXvXkcpoLPQPdRxZW1H+q3qmAu4cIOY58aFByLdIwzbD2T8r4A4MHaoCDuuwHbqGuIvF9DX6KQo2CgyWrHwaKmUg7TmduKH9ALsEPhZI27Q+StlvB19jMX8r+DvlFexa58mp9vMsfxwbxkmoFTgZQ8/pgLLv1gYBuhbDri+a4ngP9ATybyWMoUPlqRx5Dk3ww/NPDxD+ddNLQD4dNO9Nw0kT/VJk47J7N6484tO8hcY86VszbkzGEeoDZ
[192.168.10.17]:5566 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCky1YNePzBQ4OzrJf991eSWRdpqUu6/pEgJpV8gRXhM1aItm8FBEDiOjgtF5sSOVdUhY/+PlplX8Ne766Gp3AC7lsu6PwAXYXdZmOj3LRmQBlVdux4ddRQEhFJryjonghFFAoGljjy5K7XpNHotuTh0qJfZ/EkldaVdrrt60voUN3HviUKZYm+kkpCi12/0ux0JE20Lmi288LwZZECYXFr6jXXbLyzVHN0bdnxdzaTODRMxvrKw5vOFIJhLMlbZo0NTv2OkS142T1+9yfUHgDKeJDiLCicZZHukg/bv3v2+6en6pVh7wZVJPLL7Z41qHvXPJekJInbGYb14UCB9wfn
. . . . . .
二、連線錯誤的畫面
用 Gnome-RDP 這個套件進行連線,畫面就如上方紅色虛線框所述。但若在「終端機」下 ssh 命令,那麼看到的畫面訊息就不同了,[SiB@Celeron-D ~]$ ssh 192.168.10.17 -p 5566 -l SiB @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is ba:e1:ca:6a:bb:91:c2:52:0c:32:d2:19:04:85:68:30. Please contact your system administrator. Add correct host key in /home/SiB/.ssh/known_hosts to get rid of this message. Offending RSA key in /home/SiB/.ssh/known_hosts:2 RSA host key for [192.168.10.17]:5566 has changed and you have requested strict checking. Host key verification failed.訊息主要是說在 ~/SiB/.ssh/known_hosts 的暫存金鑰檔中,順序排在第 2 之金鑰是錯誤的。
三、刪除錯誤的暫存金鑰
用『懶人招』當然很簡單,但若是曾經連線的「遠端主機」眾多,會有很長一段時間非常不方便。實際上,只要使用「文字編輯器」(如:gedit 或 vi)刪除錯誤的金鑰即可。四、再次連線
將「遠端電腦」儲存在「本地電腦」的錯誤金鑰刪除後,再連線就會正常了。[SiB@Celeron-D ~]$ ssh 192.168.10.17 -p 5566 -l SiB
The authenticity of host '[192.168.10.17]:5566 ([192.168.10.17]:5566)' can't be established.
RSA key fingerprint is ba:e1:ca:6a:bb:91:d2:52:0c:32:d2:19:04:85:b8:30.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.10.17]:5566' (RSA) to the list of known hosts.
SiB@192.168.10.17's password:
Last login: Mon Jan 7 21:00:11 2013 from 192.168.10.13
[SiB@Core-i7 ~]$
已測試版本:
- Fedora: 14, 17, 18
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)