1Password で SSHキーを管理する際に Too many authentication failures になる対処法
自分は自宅でいくつかラズパイを動かしていて、そのラズパイのSSHキーを 1Password で管理している。更に 1Password SSH agent を使用するとローカルに鍵を置くことなく ssh できるのでセキュアで気に入っています。
ただ、この 1Password 上で管理しているSSHキーが6個を超えると Too many authentication failures というエラーになり ssh ログインできなくなる事象に遭遇したのでその対処法を残します。公式ドキュメントにもまとまっていますが、日本語記事として検索に引っかかってくれれば幸いです。
なぜ Too many authentication failures になるか?
どうやら、ssh する際に 1Password に保存したSSHキーを登録された順ですべて投げて試すという動作をするらしく、デフォルトで ssh サーバーの MaxAuthTries は 6 になっているため7個目に差し掛かることなく6個目のキーでエラーになってしまうという事みたいです。
解決策1: 公開鍵を指定する
少し面倒ですが一番オススメできる方法です。1Password からローカルに公開鍵をダウンロードし、~/.ssh/config で指定してやります。すると ssh する際に公開鍵から必要な秘密鍵を特定しそれのみを使用してくれます。
Host hoge
HostName xxx.xxxx
User xxxx
IdentityFile ~/.ssh/hoge-id-rsa.pub # 公開鍵を指定
IdentitiesOnly yes # 指定した秘密鍵を使用する設定
これでいくつSSHキーが増えても問題なく使用できるようになります。
解決策2: MaxAuthTries を増やす
こちらはセキュアな方法ではないのでおすすめできません。ssh サーバーの /etc/ssh/sshd_config の MaxAuthTries を適当な値に増やして sshd を restart します。
sudo vim /etc/ssh/sshd_config
sudo /etc/init.d/ssh restart
まとめ
クラウドが当たり前になっている昨今、自宅でラズパイなんて動かしている人はすくないかと思いますが、だれか一人にでも届くといいなと思います。