通过telnet服务器的ssh隧道

通过telnet服务器的ssh隧道,ssh,tunneling,Ssh,Tunneling,假设网络如下所示: A(192.68.0.1)--------------B(192.68.0.2)----C(192.68.0.3) A是我的ssh服务器,C是目标ssh服务器,我可以从A远程登录到B(我的帐户不是root) B是一个服务器,不允许其他服务器使用ssh登录,但B可以通过ssh登录到C 是否可以通过ssh将C从A连接到B?如果可以在B上运行程序,可以使用类似的方法将TCP连接转发到C 然后从A用SSH连接到B上的某个端口(不是22),这将把连接转发到C。由于SSH会话是AC,所以

假设网络如下所示:

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

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

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


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

如果可以在B上运行程序,可以使用类似的方法将TCP连接转发到C

然后从A用SSH连接到B上的某个端口(不是22),这将把连接转发到C。由于SSH会话是AC,所以所有内容都将被加密。

ok telnet to 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:22192.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上的本地主机,因为我记不起不生成shell的命令,我懒得去查找它。。。但是,如果上面的解决方案不起作用,您将无法在没有root的情况下使用ssh重定向端口,您将不得不更改b上的配置文件

你必须补充一点
GatewayPorts yes
到/etc/sshd/conf/sshd\u config中的sshd配置文件


--这是关于使用ssh进行端口转发的所有内容

更适合superuser.com(或者可能是serverfault.com)。您可以使用a->B中的telnet会话,然后是B->a和B->C中的ssh会话以及某种管道进行端口转发,但您所做的一切都将从a->B中清晰地传输,因此,何必麻烦呢?首先你把鸡带到船上,因为狐狸不吃鸡饲料。然后你离开鸡,回来找狐狸。一旦你把狐狸和小鸡放在河的另一边,你就抓住小鸡,把它带回河的原始一边。你把鸡留下,但要吃鸡饲料。然后你用你最后一次旅行回来拿鸡。因为C上的帐户很重要,但B上的帐户不怕被偷。所以如果我得到这个,它就失败了?%netstat-an | grep 2200并导致*.2200*。0 0 24576 0 LISTENi dunno,*.2200有点让人困惑。。。尝试在该端口2200上使用ssh连接到“b”…我认为它正在正确侦听,但在尝试之前您不知道:)当我在2200上使用ssh连接到b时,它会显示:通道2:打开失败:管理禁止:打开失败您使用-L命令打开了另一个ssh连接?如果是这样的话,那么你可能不得不想出一个替代的解决方案。管理禁止意味着你得到了一个复位(端口未打开)我已经尝试了一段时间,这终于奏效了!这是简洁的,没有必要透露我的帐户上的一次!