LoginSignup
37

Amazon Linux 2023 に Teraterm から SSH 接続してみた : ssh-rsa 署名無効化対応

Last updated at Posted at 2023-03-18

はじめに

Amazon Linux 2023 が、2023 年 3 月 15 日に一般公開になりました。AWS に最適化されたパフォーマンスを提供する Linux ベースの 最新 OS です。OS を起動したままカーネルのパッチを適用できる kpatch の利用など、便利な機能が追加されています。

AWS Document に Amazon Linux のリリース頻度やサポート期限が記載されているのも大きい変更点です。2 年ごとにメジャーバージョンがリリースされ、5 年の長期サポートが提供されます。

image-20230318151212755.png

引用 : https://docs.aws.amazon.com/linux/al2023/ug/release-cadence.html

Amazon Linux 2023 と Amazon Linux 2 の違いは、こちらの Document に記載されています。特に Windows で Teraterm を使っているユーザーに影響があるのが、デフォルトで SSH の ssh-rsa 署名が無効になったことです。

(注 : ここから筆者の理解が間違ってる可能性があります。出来るだけ正しい内容になるよう心掛けていますが、誤りがあったら教えて下さい :bow:)

ssh-rsa の危険性について、OpenSSH のリリースノートに書かれているのですが、USD$50K より少ない金額で、SHA-1 アルゴリズムに対する選択プレフィックス攻撃が出来る問題があります。つまり、セキュリティ上の問題で、ssh-rsa は使わない方が良いということです。

 

Teraterm についてのお話に移ります。

SSH を接続するときに、接続元のクライアントと接続先サーバー間で「自分はこのアルゴリズムを使えるよ」と互いに送りあい、利用する暗号方式を決めていきます。今回のアップデートで、Amazon Linux 2023 の SSH サーバー側は、 ssh-rsa 署名がデフォルトで使えなくなりました。接続元のクライアント側は、代わりに rsa-sha2-256 および rsa-sha2-512 プロトコルや、ed25519 キーを使用した ssh-ed25519 を利用する必要があります。

Teraterm では 5.0 beta 1 のバージョンから、 rsa-sha2-256 および rsa-sha2-512 プロトコルがサポートされました。 5.0 beta 1 のバージョンのダウンロードや Changelog は以下の URL から確認できます。

表現を変えると、Teraterm 5.0 beta 1 よりも古いバージョンを使っている場合は、 rsa-sha2-256 および rsa-sha2-512 プロトコルが使えません。そのため、Amazon Linux 2023 に接続するときに、今まで使っていた Teraterm で接続できないことが有りえます。(何らかの意識をしていない限り、基本的には Teraterm 5.0 beta 1 よりも古いバージョンでは接続できません)

この記事では、新しい Teraterm 5.0 beta 1 を使って、Amazon Linux 2023 に接続する方法を紹介します。

忙しい方に向けて、初めに結論

  • SSH 接続が出来ない影響が出るのは、基本的に Windows で Teraterm を使っているユーザー。Mac や Windows で WSL2 を使っているユーザーは引き続き SSH 接続が出来る
  • Teraterm は、 5.0 beta 1 以降のバージョンを使えば接続できるので、アップデートするのが一番楽。4.x 台など、以前のバージョンを使ってると、デフォルトでは接続できない。
  • 今まで使っていた、公開鍵認証の秘密鍵ファイル・公開鍵ファイルはそのまま継続利用が可能

キーペアの作成

ベータ版以前の Teraterm で生成した鍵がそのまま利用できるか確認するために、Teraterm 4.106 を使って、キーを生成します。

image-20230318163149720.png

デフォルトの RSA 2048 Bit で鍵を生成します。Bit は 4096 の方が良いと思いますが、今回はより一般的に利用されているであろう 2048 で検証してみます。

image-20230318163250082.png

作成した公開鍵をキーペアとして登録します。

image-20230318163823307.png

Import を押します。

image-20230318164055385.png

KeyPair が登録できました。

image-20230318164130878.png

Amazon Linux 2023 の構築

EC2 の構築画面で、Amazon Linux 2023 が選択できるようになっています。これを使って適当に構築します。

image-20230318164255967.png

キーペアは、Teraterm で作成したものを指定します。

image-20230318164320596.png

Launch Instance を押します。

image-20230318164358828.png

Amazon Linux 2023 が構築されました。

image-20230318164519333.png

接続 NG : Teraterm 4.106

接続が出来ない Teraterm 4.106 で SSH 接続を試みます。接続が失敗する想定です。

image-20230318164653078.png

ec2-user で接続を試みます。

image-20230318164743491.png

想定通り、エラーになりました。

image-20230318171500649.png

接続 OK : Teraterm 5.0 beta 1

Teraterm 5.0 beta 1 をダウンロードします。時期によっては通常版でも対応してると思うので、最新のバージョンを確認してみてください。

image-20230318171559560.png

EC2 の Public IP を指定して OK を押します。

image-20230318164851242.png

ユーザー名 ec2-user や、Teraterm 4.106 で作成した RSA 2048 bit の秘密鍵を指定します。

image-20230318164922747.png

接続できました。

image-20230318164944200.png

付録1 : SSH の Host Key order の設定

Teraterm で、どういったプロトコルが対応しているか確認できます。Setup から SSH を開きます。

image-20230318165325746.png

Teraterm 4.106 の方です。

image-20230318165209910.png

対して、Teraterm 5.0 beta 1 の方です。新たに rsa-sha2-512rsa-sha2-256 がサポートされていることがわかります。これで Amazon Linux 2023 のデフォルト設定でも接続できるというわけです。

image-20230318165232234.png

付録2 : ED25519 キーで接続

他の接続方法として、ed25519 キーを使用した ssh-ed25519 を利用する事も可能です。この方法を使うと、キーペアは更新する必要はありますが、Teraterm は古いものでも利用が出来ます。

ただ、EC2 として機能的な制限が出てくるため、新しい Teraterm を利用する方が好ましい気がします。

  • Windowsインスタンス、EC2 Instance Connect、またはEC2シリアルコンソールではサポートされない

ED25519 のキーを生成します。

image-20230318172035742.png

キーペアを登録します。

image-20230318172147862.png

EC2 インスタンス作成の際に、新しいキーペアを指定します。

image-20230318172227982.png

接続をしてみます。

image-20230318174501371.png

ED25519 の秘密鍵を指定します。

image-20230318174528844.png

接続できました。

image-20230318174542864.png

付録3 : ssh-rsa を有効化

非推奨ですが、OpenSSH サーバー側の設定を変更して、ssh-rsa を有効化させることも可能です。ただ、セキュリティ的には良くないです。この記事は技術的に出来る出来ないを検証するためであり、本番環境では有効化はしない方がよいです。

有効化のコマンドは以下の Document で言及されています。

以下の install コマンドを実行します。

sudo dnf install crypto-policies-scripts

実行例

  • 既にインストール済みでした
# sudo dnf install crypto-policies-scripts
Last metadata expiration check: 0:42:29 ago on Sat Mar 18 07:44:39 2023.
Package crypto-policies-scripts-20220428-1.gitdfb10ea.amzn2023.0.2.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!

OpenSSH のポリシーを更新します。

sudo update-crypto-policies --set LEGACY

実行例

# sudo update-crypto-policies --set LEGACY
Setting system policy to LEGACY
Note: System-wide crypto policies are applied on application start-up.
It is recommended to restart the system for the change of policies
to fully take place.

上記のコマンドによって、以下の設定ファイルが書き換わっているのが発見できました。

  • ssh-rsa が有効化となっている
# cat /etc/crypto-policies/back-ends/opensshserver.config
Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc,3des-cbc
MACs hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha1,umac-128@openssh.com,hmac-sha2-512
GSSAPIKexAlgorithms gss-curve25519-sha256-,gss-nistp256-sha256-,gss-group14-sha256-,gss-group16-sha512-,gss-gex-sha1-,gss-group14-sha1-
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1
HostKeyAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,sk-ssh-ed25519@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ssh-rsa,ssh-rsa-cert-v01@openssh.com,ssh-dss,ssh-dss-cert-v01@openssh.com
PubkeyAcceptedAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,sk-ssh-ed25519@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ssh-rsa,ssh-rsa-cert-v01@openssh.com,ssh-dss,ssh-dss-cert-v01@openssh.com
CASignatureAlgorithms ecdsa-sha2-nistp256,sk-ecdsa-sha2-nistp256@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,sk-ssh-ed25519@openssh.com,rsa-sha2-256,rsa-sha2-512,ssh-rsa,ssh-dss

これ以降、Teraterm 4.106 でも接続が出来ました。

image-20230318174327568.png

参考 URL

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37