最完整的Docker聖經 - Docker原理圖解及全環境安裝

更換CoreOS不安全的ssh key

coreos_production_vmware_insecure的登入方式使用公開的ssh key,任何一個下載同一份zip檔案的人,都可以利用相同的ssh key登入,十分危險。本小節說明如何把這不安全的ssh key刪除掉,並換成使用者自己安全的ssh key。使用Ubuntu Linux作為ssh的客戶端示範。

換成安全的ssh key

  1. 先確定你擁有自己的ssh key,輸入ls ~/.ssh -al,要有id_rsa.pub這個檔案。
  2. 將自己的ssh key加入CoreOS主機中安全ssh key的清單中。CoreOS中有一個更新ssh key的專門script檔update-ssh-keys,用來把自己安全的ssh key更新到CoreOS的主機ssh key允許清單中。假如CoreOS的 IP是192.168.1.109,則輸入: cat ~/.ssh/id_rsa.pub | ssh [email protected] -i insecure_ssh_key update-ssh-keys -a safeuser
  3. 完成之後,直接進入CoreOS,不需要舊的insecure_ssh_key了。輸入:ssh [email protected]
  4. 進入CoreOS之後查看目前的key,包括了舊有不安全的,和剛才加入安全的Key。
  5. 把舊的不安全的key移除,輸入update-ssh-keys -D coreos-cloudinit即可。
  6. 此時用原來舊的KEY已經進不去了。
  7. 如果你的CoreOS在重新開機後IP變了,你可能會進不去了,會出現如下的畫面
    [email protected]:~$ ssh [email protected]
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @    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 ED25519 key sent by the remote host is
    5e:a8:6e:7f:36:21:8c:1d:24:c7:37:0d:df:96:44:ae.
    Please contact your system administrator.
    Add correct host key in /home/joshhu/.ssh/known_hosts to get rid of this message.
    Offending ECDSA key in /home/joshhu/.ssh/known_hosts:1
    remove with: ssh-keygen -f "/home/joshhu/.ssh/known_hosts" -R 192.168.1.109
    ED25519 host key for 192.168.1.109 has changed and you have requested strict checking.
    Host key verification failed.
    
    此時只要輸入ssh-keygen -f "/home/joshhu/.ssh/known_hosts" -R 192.168.1.109來更新ssh key,就可以正常登入了。