sshでログインせずにknown_hostsを登録する方法
ホスト名example.com
へsshするためのknown_hostsレコードの登録方法は以下の通り。
ssh-keygen -R example.com ssh-keyscan -H example.com >> ~/.ssh/known_hosts
ssh-keygen -R <ホスト名>
で、~/.ssh/known_hosts
からそのホスト名のエントリを削除できます。ssh-keyscan -H <ホスト名>
で、known_hosts
用にハッシュ化したホスト名のデータを出力できます。
こうやって登録しておくと、sshで初めてログインするときでもAre you sure you want to continue connecting (yes/no)?
とか言われません。
蛇足
ちなみにこれをワンライナーにすると以下の通り。
echo example.com | while read L; do ssh-keygen -R $L; ssh-keyscan -H $L >> ~/.ssh/known_hosts; done
または
echo example.com | xargs -I@ echo "ssh-keygen -R @; ssh-keyscan -H @ >> ~/.ssh/known_hosts" | sh
以上。
参考
man ssh-keyscan
man ssh-keygen