Compute Engine(GCE)の環境で、OSをCentOS Stream9としてVMインスタンスを作成しました。CentOS Stream8の場合と同じようにSSH接続の設定を行ってSSHターミナル接続をしたところ認証エラーが発生しました。
(1)CentOS Stream9でSSH認証エラーが発生
1)/var/log/secureのログを確認
Nov 27 11:13:53 inst-strm9 sshd[3765]: userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
2)サーバー側(OpenSSH)とクライアント側の(TeraTerm)の環境を確認
●サーバー:OpenSSH
○バージョン:openssh-8.7p1-35
○公開鍵署名(ホストキー)アルゴリズムの対応
・ssh-rsa(SHA1ハッシュを使用):新しいOpenSSHでは、がデフォルトで無効化されている。
・rsa-sha2-256/512(SHA2ハッシュを使用):ssh-rsaと同じ鍵タイプを使うという利点があり、さらにより安全なSHA-2ハッシュアルゴリズムが使用。
・ssh-ed25519署名(SHA2ハッシュを使用):OpenSSH 6.5以降でサポートされている。
・ecdsa-sha2-nistp256/384/521(SHA2ハッシュを使用):OpenSSH 5.7からサポートされている。
●クライアント:TeraTerm
○バージョン:4.100
○公開鍵署名(ホストキー)アルゴリズムの対応
・ssh-rsa、ssh-ed25519、ecdsa-sha2-nistp256/384/521
・rsa-sha2-256/512は非対応。
●認証アルゴリズム、鍵、ハッシュの対応
ssh-rsa RSA SHA1
rsa-sha2-256/512 RSA SHA2-256/521
ssh-ed25519 ed25519 SHA2-256
ecdsa-sha2-nistp256/384/521 ECDSA SHA2-256/384/521
3)エラーの原因
・SSHサーバー側は、ssh-rsaがデフォルトで使えなくなっており、クライアント側は、代わりに rsa-sha2-256/512やssh-ed25519を利用する必要があったが、Teraterm 5.0 beta 1 よりも古いバージョンを使っている場合は、 rsa-sha2-256/rsa-sha2-512がサポートされておらず、エラーとなった。
(2)対応策
1)TeraTermを5.0、4.107以降にバージョンアップする
2)ssh-ed25519アルゴリズムを使ってSSH鍵を作成
Ⅰ)SSH鍵をWindowsクライアントのTeraTermで作成
①TeraTermを起動させ"設定"→"SSH鍵作成"をクリック
②鍵生成ウィンドウで以下のように入力し、"生成"をクリック
・鍵の種類:ED25519
③鍵が生成される。ウィンドウの以下の項目に入力
・鍵のパスフレーズ:ブランクでもOK
・コメント:ユーザー名@gmail.com
④公開鍵の保存、秘密鍵の保存
Ⅱ)GCEのコンソールに公開鍵を追加
①"Compute Engine"→"VMインスタンス"→インスタンス一覧
②対象のインスタンスをクリック
③中央ペイン上部の"編集"をクリック
④SSH認証鍵の部分の"項目を追加"をクリック
⑤1)で作成した公開鍵ファイルを開き、中身を貼り付け
例)貼り付けるテキストの内容例
ssh-ed25519 AAA・・・・キー値・・・・・
・・・・・・ ユーザー名@gmail.com
⑥"保存"をクリック