GCE上のCentOS Stream9でSSH認証エラー | サーバーエンジニアのスキルアップ日記

サーバーエンジニアのスキルアップ日記

サーバエンジニアがレンタルサーバーを使って試行錯誤しながら各種サービスを動作させ、スキルアップする日々を語ります。

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

⑥"保存"をクリック