🔑

踏み台サーバーのアルゴリズムが古い場合の多段SSHの方法

2024/12/22に公開

踏み台サーバーが古いためにオプション無しではssh実行時にアルゴリズムが合致せず、sshできない場合があります。

また、多段ssh(portfoward)を実行したい場合にはさらに厄介です。

そうした場面で使えるsshの設定です。

!!!注意!!!

本記事では回避策を掲示していますが、セキュリティ対応を遅らせることを推奨するものではありません。
サーバー側のセキュリティ更新が絶対です。
古いアルゴリズムは暗号化強度が弱く、解読されてしまう危険性が高まります。

.ssh/config ファイルの利用

.ssh/config を利用するとsshコマンド実行時に接続先が補完され、user名など値がaliasの中でまとめて設定でき便利です。

この .ssh/config ファイルでは、接続先hostごとに利用するアルゴリズムも指定できます。

このオプションで、踏み台サーバーが利用可能なアルゴリズムを指定します。

例えば以下のような形式です

Host example-bastion-server
  Hostname 192.0.0.1
  User example
  Port 22
  KexAlgorithms diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 
  Ciphers aes128-cbc
  HostKeyAlgorithms ssh-dss,ssh-rsa
  PubkeyAcceptedAlgorithms +ssh-rsa

portfoward実行時のsshコマンドで.ssh/configファイルのaliasを利用

あとは、portfoward実行時のbastion serverにて、.ssh/config で設定したaliasを指定します。

ssh -v -N  -L localhost:6666:10.0.0.1:22 -o ConnectTimeout=15 -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -p 22 example-bastion-server

Discussion