2012年6月10日 星期日

ignore the yes/no checking while ssh connect first time

[Problem]
當每回第一次連線到一個新的ip/host時總會產生以下的訊息:

user@host:$ ssh 192.168.1.1
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ECDSA key fingerprint is c7:16:8b:55:c8:39:24:5a:db:cd:e9:79:8c:24:59:39.
Are you sure you want to continue connecting (yes/no)?

此時就又必須在輸入一次" yes"才會完成連線

那假若不想輸入yes就直接連線進去可用以下方法

[Method]
在 ~/.ssh/ 中新創一份檔案叫 config
然後在config中加入

    Host 192.168.1.1
        StrictHostKeyChecking no
        UserKnownHostsFile=/dev/null

儲存.

而之後若是第一次作ssh連線到192.168.1.1的host時,
就不會在出現以上的訊息, 也不用在輸入yes就可直接進入連線


[Note]
適用情況之一:
假設像是hadoop這種大規模數量的node建置時,
master必須先把authorized_keys scp給每個slave, 但手動每次的scp太花費時間,
當寫成shell script時又會卡在上述問題的詢問上,
此時就可先在master的~/.ssh/config 上利用Method加入所有slave

沒有留言:

張貼留言