SSH逆トンネリング - 鍵認証を使用するときにパスワード要求を無効にする

SSH逆トンネリング - 鍵認証を使用するときにパスワード要求を無効にする

以下を使用してリバースSSHトンネルを設定しました。

ssh -R 22100:127.0.0.1:22 remoteuser@remotehost

マシン1から。本機はキーを使ってリモコンで認証します。

リモートホストは次のsshd_configオプションを使用します。

...
PubkeyAuthentification yes
PasswordAuthentification no
...

これは、リモートサーバーがキーを認識する3番目のシステムでは正常に機能します。つまり、トンネルが最初に設定されたマシン1の正しいログインを使用しますssh remoteuser@remotehost -p 22100

ただし、リモートサーバーで認識されているキーを持たない4台目のコンピュータにログインしようとすると、まだパスワードの入力を求められます。つまり、4番目のマシンでは次のようになります。

ssh remoteuser@remotehost
# returns Permission denied (publickey)

ssh remoteuser@remotehost -p 22100
# is asking for password for remoteuser@remotehost

リバーストンネルポートに接続しようとしたときにパスワードオプションが表示されるのはなぜですか?それでもパスワードがうまくいかないようです。鍵が認識されない場合にパスワードを求める機能も無効にするにはどうすればよいですか?

答え1

トンネルが確立されると、「remotehost」のポート22100へのすべての接続は「マシン1」のポート22への接続になります。特に、このポートがssh remoteuser@remotehost -p 22100「4番目のマシン」で実行されている場合はさらにそうです。したがって、重要なパラメータは、「マシン1」のポート22で実行されるsshdのパラメータです。

OPは、システムがリモートuser@remotehostのパスワードを要求することを示していますが、これは要求された接続が要求する内容を反映しています。 SSHプログラムは、ポート22100が転送されていることを知りません。ただし、確認しているホストキーは、「リモートシステム」ではなく、「システム1」のホストキーです。既知のホストデータベース(通常〜/.ssh/known_hosts)はポートとホストと共にキーを格納するため、これはすべて機能します。

関連情報