web-dev-qa-db-ja.com

設定のリバースSSHトンネル

./ssh/configファイルでリバースSSHトンネルを確立するにはどうすればよいですか?

このコマンドを再現しようとしています

ssh -R 55555:localhost:22 user@Host

私の.ssh/configファイルで、ssh Hostユーザーとして、リバーストンネルを使用してホストにSSHで接続します。構成ファイルで受け入れられるコマンドは、コマンドラインフラグのより詳細なものです。 sshマンページとssh_configのマンページに基づくと、対応する設定はBindAddressのようです。

私の.ssh/configファイルには、

Host host
     Hostname Host
     User user
     BindAddress 55555:localhost:22

これ、およびそのわずかなバリエーションにより、接続しようとしても接続が拒否されます

ssh localhost -p 55555

ホストにログインすると。最初にホストにsshするときに、コマンドを上部に明示的に指定しても同じように機能します。私の設定ファイルは、reverse tunnelコマンドなしで機能します。 ssh Hostは、ユーザーとしてホストにログインします。

16
Praxeolitic

BindAddressはあなたが求めているオプションではありません。 man ssh_config から:

BindAddress
         Use the specified address on the local machine as the source
         address of the connection.  Only useful on systems with more than
         one address.

-Rに相当する構成ファイルはRemoteForwardです。

RemoteForward
         Specifies that a TCP port on the remote machine be forwarded over
         the secure channel to the specified Host and port from the local
         machine.  The first argument must be [bind_address:]port and the
         second argument must be Host:hostport. [...]

この情報を使用して、コマンドライン

ssh -R 55555:localhost:22 user@Host

次の.ssh/config構文に変換されます。

Host host
HostName Host
User user
RemoteForward 55555 localhost:22
30
Marco