Poderosa5で「インデックスが配列の境界外です。」と出る場合の対処法(CentOS8 Ubuntu)

Poderosa

Poderosa Terminal 5で、CentOS8のサーバに接続すると「インデックスが配列の境界外です。」というエラーが出て接続ができないことがあります。


これはSSHでなりすましサーバを防ぐためのフィンガープリント鍵の長さが原因です。
具体的には
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
のキーペアで、OSインストール時に一度だけ作成されます。

CentOS8.0以前ではこの鍵は2048ビット長でしたが、8.1のバージョンから3072ビット長に変わっています。

8.1 リリースノート | Red Hat Customer Portal

OpenSSH が 8.0p1 にリベースされました。
openssh パッケージがアップストリームバージョン 80p1 にアップグレードされ、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。主な変更点:
ssh-keygen ツール用のデフォルトの RSA 鍵サイズを 3072 ビットに増加


Ubuntuでは、18.04から変更されているようです。

キーの長さは下記のコマンドで確認できます。

$ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

3072 SHA256:IOKSUBgYconDXkZZ09c7Ak0x0JKaJvxBWDfYRehQiDE no comment (RSA)

このキーの長さが長くなったことで、Poderosaの内部の文字列範囲を越えてしまっているため、「インデックスが配列の境界外です。」というエラーが出るようになっています。

キーペアを2048ビットのものに置き換えることで、このエラーは解消しSSH接続できるようになります。

置き換え前に現在のキーペアをバックアップします。

mv /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key_back
mv /etc/ssh/ssh_host_rsa_key.pub /etc/ssh/ssh_host_rsa_key.pub_back

キーペアを2048ビット長で作成します。

ssh-keygen -t rsa -b 2048 -C '' -f /etc/ssh/ssh_host_rsa_key

これでPoderosa5でSSH接続ができることを確認します。
他のSSHソフトでも接続できなければ、元に戻す方法は現在接続しているターミナルのみとなるので作業中はターミナルを閉じてはいけません。

サーバのSSHキーを変更できない場合は、Poderosa4やTeraTermを使って接続するなどします。
Poderosa4
Tera Term

Poderosaの改修がされることを待つしかありませんが、2017年4月ごろから更新が止まっているため難しそうです。

関連記事

スポンサーリンク

ナインパッチとは(9-Patch)

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る