通过 telnet 服务器建立 ssh 隧道

发布于 2025-01-06 20:07:32 字数 236 浏览 1 评论 0原文

假设网络如下:

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 从 A 通过 B 连接 C?

Suppose the network is like:

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

A is my ssh server, C is a target ssh server, and I can telnet from A to B(my account is not root).

B is a server not allow ssh login from others, but B can login to C via ssh.

Is it possible to connect C from A through B via ssh?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

神魇的王 2025-01-13 20:07:32

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

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

If you can run programs on B, you can use something like simpleproxy to forward the TCP connection to C.

Then you SSH from A to some port on B (not 22), which will forward your connection to C. Everything will still be encrypted since the SSH session is A<->C.

2025-01-13 20:07:32

好的 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 有 127.0.0.1 正在监听 2200 而不是 0.0.0.0,则此技巧不起作用...但如果起作用...则可以连接在端口 2200 上 ssh 到 b,它将命中 c

ssh 192.68.0.2:2200

i你有 ssh 到 b 上的本地主机吗,因为我不记得不生成 shell 的命令,而且我懒得查找它...但是如果上面的解决方案不起作用,你将无法在没有 root 的情况下使用 ssh 重定向端口,你必须更改 b 上的配置文件,

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

http://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch09_02.htm -- 这讨论了所有关于 ssh 端口转发的内容

ok telnet to b
you can actually ssh to yourself on b, but the following command may not work but try it first

ssh -L0.0.0.0:2200:192.68.0.3:22 127.0.0.1 ...
if sshd is not running on b... then ssh to c

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

do a

netstat -an | grep 2200 -- Do this on b (192.68.0.2)

if the netstat has 127.0.0.1 listening on 2200 and not 0.0.0.0 this trick wont work... but if it does... you can then connect to ssh on port 2200 to b and it will hit c

ssh 192.68.0.2:2200

i have you ssh to localhost on b because i cant remember the command to not spawn a shell and im too lazy to look it up... but if the solution above does not work you wont be able to redirect ports with ssh without root, you would have to change the config file on b

you would have to add
GatewayPorts yes to the sshd config file in /etc/sshd/conf/sshd_config

http://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch09_02.htm -- this talks all about port forwarding with ssh

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文