ssh通过telnet服务器进行隧道传输



假设网络如下:

A(192.68.0.1)--------------------B(192.68.0.2)--------------------C(192.68.3)

A是我的ssh服务器,C是目标ssh服务器,我可以从A远程登录到B(我的帐户不是root)。

B是一个不允许ssh从其他服务器登录的服务器,但B可以通过ssh登录到C。

可以通过ssh将C从A连接到B吗?

如果你可以在B上运行程序,你可以使用simpleproxy之类的东西将TCP连接转发到C。

然后,您从A通过SSH连接到B上的某个端口(不是22),这将把您的连接转发到C。由于SSH会话是A<->,因此所有内容都将被加密C.

ok telnet到b实际上,您可以在b上对自己进行ssh,但以下命令可能不起作用,但请先尝试

ssh -L0.0.0.0:2200:192.68.0.3:22 127.0.0.1。。。如果sshd没有在b上运行…那么ssh到c

ssh -L0.0.0.0:2200:192.68.0.3:22 192.68.0.3

netstat -an | grep 2200—在b(192.68.0.2)上执行此操作

如果netstat在2200上监听127.0.0.1而不是0.0.0.0,那么这个技巧就不会奏效。。。但如果真的。。。然后,您可以在端口2200上连接到ssh到b,它将命中c

ssh 192.68.0.2:2200

我让你ssh到b上的localhost,因为我记不起不生成shell的命令了,而且我也懒得查找它。。。但是,如果上面的解决方案不起作用,您将无法在没有root的情况下使用ssh重定向端口,您将不得不更改b上的配置文件

你必须添加GatewayPorts yes到/etc/sshd/conf/sshd_config 中的sshd配置文件

http://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch09_02.htm--这说明了使用ssh 的所有端口转发

最新更新