くんすとの備忘録

IT系技術メモ

移転しました。

15秒後に自動的にリダイレクトします。

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