【Poderosa】SSH接続時に「インデックスが配列の境界外です」エラーについて

Poderosaを使い、SSH接続するため、Ubuntuに接続しようとしたら「インデックスが配列の境界外です」というエラーが出ました。

OS:Ubuntu Desktop 20.04 LTS
SSH接続ソフト:Poderosa5.4.2

目次

エラーはPoderosa5が長いキーサイズを処理できないため

これはPoderosaのバージョン5で、RSA 鍵サイズが3072 ビットになっている場合に起こる現象です。

SSHサーバーには、公開鍵の指紋(finger print:フィンガープリント)と呼ばれるものがあります。

これはSSHクライアントが最初にそのSSHサーバーに接続する際に、サーバーが正しいかどうか確認します。

この時に表示される文字列の羅列が「フィンガープリント」です。

この長さが、最新の「Ubuntu」や「CentOS」などで、デフォルトの長さが2048ビットから3072ビットに変更されました。

「Poderosa5」では、この長さが増えた事により、処理できなくなったため「インデックスが配列の境界外です」と表示されるようになってしまいました。

エラーへの解決策

キーの長さを2048ビットに直す

キーサイズがエラーの原因なら、2048ビットに戻せばOKです。

念の為、現在のキーサイズを確認してみます。

# キーのサイズ確認
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
3072 SHA256:akM916H6K4MIEunQKQCFG9QnWZ7N2o4Goo1kag7frs0 root@ubuntu (RSA)

SHA256の3072ビットキーである事が確認できます。

次にこれを2048ビットのキーに置き換えますが、念の為 現在のキーペアのバックアップを取ります

# キーペアのバックアップ
sudo mv /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.bak
sudo mv /etc/ssh/ssh_host_rsa_key.pub /etc/ssh/ssh_host_rsa_key.pub.bak

次に2048ビットのキーを生成します。

# 2048ビットのキーを生成
sudo ssh-keygen -t rsa -b 2048 -C '' -f /etc/ssh/ssh_host_rsa_key

生成したキーのサイズを確認します。

# 生成したキーを確認する
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
2048 SHA256:7MYPJd6jvR0zk0qatKJGct5cSfd29vIwkOahv4U0PJU no comment (RSA)

これで「Poderosa5」から接続できるはずです。

Poderosa5:スターウォーズオープニングエフェクト

他のSSHクライアントを使う

キーサイズの変更でもOKですが、2021年4月現在の「Poderosa5」の最新版は2017年7月6日で更新が止まっています

もう3年半も更新が止まっているので、できれば他のSSHクライアントを使うのも手かもしれません。

ちなみに下位バージョンの「Poderosa4」での接続は可能なようですが、やはり更新が止まっていることを考えれば、乗り換える事も考えた方が良いかもしれません。

SSHクライアントには

  • Tera Term
  • Putty

などの古くからある有名なクライアントソフトがあります。

またPoderosaのようにタブを使いたい場合、SSH専用クライアントではありませんが、Windowsには「Windows Terminal」という、タブで「Windows Power Shell」が利用できるものがあります。

こちらからSSHコマンドを使って接続する事も可能です。

よかったらシェアしてね!
目次
閉じる