Macを新しくしたら鍵ファイル(pem)が急に使えなくなった話

この記事はだいぶ前に書かれたものなので情報が古いかもしれません
いきなりPermission deniedって言われたら焦るよね

この記事を三行にまとめると

Permission denied
OpenSSHのバージョンが9になった
従来の鍵を使えるようにする
先日Macbookを新調いたしまして、中のOSがMontereyからVenturaってやつに変わりました。

で、どうやらそれのせいっぽいんですが、SSHが急につながらなくなったんですよ。AWSのEC2につなごうとしたら、それまで使えていた鍵ファイルがなぜか「Permission denied」になりまして……最初は移行アシスタントで鍵ファイルの受け渡しをしたのがいけなかったのかなって思ってあれこれ探ってたんですが、無駄に二時間ほど迷走した結果、原因はそこではなくOpenSSHのバージョンが上がったことで発生したエラーだと判明しました。

どうやらMacのVenturaからはOpenSSHのバージョンが9になったらしく(Montereyは8)、バージョン9ではSHA1を使用したRSA署名が廃止になったそうです。まあ専門的なことはあまりよく分からないんですが、とにかくこれが廃止になったことによって今まで使っていた鍵ファイルが認証されなくなってしまったと、そういうことらしいです。

なので鍵をOpenSSHのバージョン9に対応したものに変えるなどの処置を取ればまた接続できるようにはなるんですが、僕的には今までの鍵が使えなくなるのは都合が悪かったので、今回は従来の鍵をバージョン9でも使えるようにしました。

従来の鍵をバージョン9でも使えるようにするには.sshディレクトリの下にあるconfigファイル(なければ作成)の中に以下のコードを記述すれば良いようです。

//configファイルを作成して開く
# cd ~/.ssh
# vi config

//以下の3行を記述
HOST *
  HostkeyAlgorithms +ssh-rsa
  PubkeyAcceptedAlgorithms +ssh-rsa

特定のHOSTに対する接続だけ許可したい場合はHOSTのところに具体的なホスト名を書けば良いんですが、特に指定がないって場合は上記のようにワイルドカードでもOKです。

これでもう一度SSHコマンドを使用すれば無事に接続できると思いますので、もしいきなりつながらなくなったぞって場合は、まずOpenSSHのバージョンを確認してみて、バージョンが9になっていたら僕と同じ状態かもしれないので、これを試してみてください。

OpenSSHのバージョンを確認する方法は以下の通り

# ssh -V

Vは大文字です。
 もしかしたら何か関連しているかも? 
 質問や感想などお気軽にコメントしてください