Ssh

配置中的反向 ssh 隧道

  • October 14, 2014

如何使用我的 ./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 到主機時明確地在頂部給出命令,那麼同樣可以正常工作。我的配置文件在沒有反向隧道命令的情況下工作;ssh host將我作為使用者登錄到主機。

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.

等效的配置文件-RRemoteForward

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

引用自:https://unix.stackexchange.com/questions/162093