最近は仮想環境を使ったり、おうちに Raspberry Pi をたくさん設置して SSH で作業することも多くなりましたよね。
SSH で接続先が増えた時に困るのがフィンガープリントの問題です。例えば VirtualBox でゲスト OS に NAT 経由で localhost:22222 で接続出来るようにしたりしますが、ゲスト OS を入れ直すと ssh-keygen -R
をしなきゃいけないんですね。Raspberry Pi も raspberrypi.local
で接続しますが、まぁ microSD をよく初期化するのでその度に ssh-keygen -R
を叩かされるわけです。特に面倒なのが AWS で EIP 固定で検証用にインスタンをスガンガン作り直したりとかですね…。
グローバルなところは置いといてローカルでホストが変わったとわかりきってるところに ssh-keygen
を叩きたくないので私は ~/.ssh/config
にこう書いてますというだけの話です。
Host localhost *.local 192.168.* StrictHostKeyChecking no UserKnownHostsFile /dev/null
上記は一例ですがこのように書いておくと、
- localhost
- *.local(例えば
raspberrypi.local
など) - 192.168.*(例えば
192.168.1.11
など)
に対してホストのチェック(初めて接続する時に聞かれる yes/no のアレ)を行わなくなります。また、ホスト公開鍵を ~/.ssh/known_hosts
ではなく /dev/null
に保存します。つまり保存しません。何言ってんだ。
この状態で接続してみましょう。Warning: Permanently added 'XXXXXXXX' (ECDSA) to the list of known hosts.
は毎回出ますが出るだけです。
$ ssh -p22222 localhost Warning: Permanently added '[localhost]:22222' (ECDSA) to the list of known hosts.
ご利用は計画的に…😇