🐏

Amazon Linux 2023 へSSH接続できない状況について

2023/09/18に公開
  • AWS EC2用のAMIでAmazon Linux 2023 (以下AL2023と略す)を選択することができるよになったが、一部のSSHクライアントではSSH接続できないことがある。
  • AL2023ではOpenSSH 8.7p1採用によりRSA/SHA1が廃止されたため、SSHクライアントはssh-ed25519やecdsa-sha2-nistp256、rsa-sha2-256などをサポートする必要があるみたい。

SSH接続状況

  • WindowsだとTera Term使用が多いと思われるのでバージョンには注意が必要。
  • 最近発表されたRC版のTera Term 4.107を使うかコマンドプロンプトでSSH接続できる。
  • macOSはターミナルで問題なく接続はできた。

Windowsの場合

ソフトウェア/バージョン SSH接続可否
Tera Term 4.106 NG
Tera Term 4.107 OK
Tera Term 5.0 beta1 OK
コマンドプロンプト (Windows 10 22H2) OK
コマンドプロンプト (Windows 11 22H2) OK

踏み台経由でAL2023にSSH接続するには

  • RHEL 6系 (CentOS 6系含む)等からAL2023にはデフォルトではSSH接続できないようだ

SSHクライアント側 (RHEL 6系)で以下を実施する。

  1. ECDSA ホストキーを生成する。
# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -C '' -N ''
# chmod 600 /etc/ssh/ssh_host_ecdsa_key
# chmod 640 /etc/ssh/ssh_host_ecdsa_key.pub
  1. 明示的にECDSAホストキーを使用するようにする。
    以下のいづれかで問題ない。※自ユーザの設定範囲内だと2.2か2.3が現実的だと思う。
2.1. SSHクライアント側で/etc/ssh/ssh_configを編集し、ECDSAホストキーを受け入れるよう設定する。
/etc/ssh/ssh_config 設定例
Host <接続先IPアドレス/ホスト名>
HostKeyAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
2.2. SSHコマンドのオプションを付けて実行する。
実行例
$ ssh -o HostKeyAlgorithms=ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521 ユーザ名@<ホスト名/IPアドレス
2.3. ~/.ssh/configを編集する。

自分のホームディレクトリの.ssh/configを編集し、パーミッションを640等する。

~/.ssh/config 設定例
Host al20023-test # 任意の名前:SSH接続する名前
  HostName <接続先IPアドレス/ホスト名>
  User <接続先ユーザ名> # 任意:なくてもよい
  Port 22 # 任意:22番なら記述必要なし
  IdentityFile ~/.ssh/al20023.pem # 任意:公開鍵認証の場合秘密鍵のPATHを指定
  HostkeyAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
実行例
$ ssh al20023-test

Discussion