如何通过 SSH 建立 SSH 隧道?

如何通过 SSH 建立 SSH 隧道?

我已经在 linux mint 上成功通过 SSH 设置了隧道,并且可以浏览网页。

但是,当我尝试使用同一端口进行 ssh 时,我得到:

无法建立与代理的连接:网络无法访问 ssh_exchange_identification:连接被远程主机关闭

在我的中,mate-network-properties我选择了手动代理配置,并且socks主机是127.0.0.1

那么为什么 ssh 不使用该代理信息,我可以让它使用所述代理吗?

答案1

你不需要挖隧道ssh。您可以ssh连接到中间主机,然后ssh连接到您需要的任何其他地方。

您甚至可以通过使用以下标志强制分配伪 tty 在单个命令中完成此操作-t

me@inside$ ssh -t intermediary ssh external
Last login: Fri Sep 21 14:13:25 2012 from intermediary
me@external$ logout
Connection to external closed.
Connection to intermediary closed.
me@inside$ 

唯一的缺点是您有多个 SSH 会话。但我真的不明白为什么这会成为一个问题。

答案2

同意@bahamat,只需直接通过 ssh 进行 ssh,而不使用 SOCKS 代理。有一种方法可以通过(需要ssh 中间人主机上的.ssh/confignetcat/ )自动执行此操作:nc

Host my-host-behind-the-firewall
ProxyCommand ssh my-ssh-front-server exec nc %h %p 2>/dev/null

现在你可以

ssh my-host-behind-the-firewall

它确实有效。如果您可以使用密钥无密码访问前端服务器,则特别方便。

http://blog.ociru.net/2013/09/24/ssh-proxycommand/

答案3

第一个例子:

# ssh -D 1080 [email protected]

第二个实例将使用socks5代理:

$ cat /etc/tsocks.conf
....
server = 127.0.0.1
server_port = 1080

发射,

$ tsocks ssh [email protected]

相关内容