10年近く前の機材に ssh 接続するときに、なんとなーくはまってしまいがちなところなのでメモしておきます。なんのきなしに RT58i に ssh で接続しようとすると、"error in libcrypto" という、手の打ちようのないメッセージを表示して接続できないことがあります。接続するにはふたつポイントがあります。
ひとつめは、サポートしているキー交換アルゴリズムです。RT58i がサポートしているキー交換アルゴリズムは古くて無効になってしまっているので、追加で有効にします。
ふたつめは、鍵長です。最近の ssh-keygen を、オプションなしで実行すると 2048 ビット長の RSA 鍵ができてしまいます。RT58i は 1024 ビット長の鍵しかサポートしていないようです。かといって、既に使用中の RSA 鍵を作り直すのも面倒なので、 DSA 鍵を 1024ビット長で用意し、それを使うように設定します。
それにしても、そろそろハードウェアを交換しないと、ですねぇ。
キーファイルの確認と作成
$ ssh-keygen -l -f ~/.ssh/id_rsa.pub 2048 (... snip ...) $ ssh-keygen -t dsa -b 1024 Generating public/private dsa key pair. (.. snip ..)
~/.ssh/config ファイル
Host rt58i HostName 192.168.1.254 HostKeyAlgorithms ssh-dss KexAlgorithms +diffie-hellman-group1-sha1 PreferredAuthentications password PubkeyAuthentication no