SSH

sshコマンドで「Load key “(公開鍵のパス)” invalid format」という警告が出る場合

発生する問題

~/.ssh/configで管理されているサーバーにsshコマンドで接続したときに、次のような警告が出る場合がある(ただし、接続自体は成功する)。

$ ssh my-server
Load key "/Users/jnito/.ssh/id_rsa.pub": invalid format

原因

~/.ssh/configIdentityFileに秘密鍵(id_rsa)と公開鍵(id_rsa.pub)の2つが指定されている。

~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa.pub
  IdentityFile ~/.ssh/id_rsa

Host my-server
  HostName foo-bar.jp
  IdentityFile ~/.ssh/id_rsa.pub
  Port 5419
  User hogehoge

秘密鍵が指定されているので接続には成功するが、公開鍵を指定することには問題があるので警告が出てしまう。

解決策

~/.ssh/configIdentityFileには秘密鍵(id_rsa)だけを指定する。

~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

Host my-server
  HostName foo-bar.jp
  IdentityFile ~/.ssh/id_rsa
  Port 5419
  User hogehoge

参考情報

linux - id_rsa.pub file SSH Error: invalid format - Stack Overflow