有办法用 SSH 给跳板机后的机器做端口映射吗?

2017-09-08 17:32:22 +08:00
 xi_lin

有台测试的机器通过跳板机可以进行 ssh 登录

有办法在本地给远程这台测试机做一个端口映射吗?

7962 次点击
所在节点    Linux
35 条回复
terry0314
2017-09-08 17:41:57 +08:00
xi_lin
2017-09-08 18:00:22 +08:00
@terry0314 对,类似这样,但是在跳板机后面没法直连目标机器
liyvhg
2017-09-08 18:05:12 +08:00
映射两次吧,目标机 22 端口→跳板机 1022 端口→本机 2022 端口
ysicing
2017-09-08 18:33:54 +08:00
proxifier 这个软件可能有用
xi_lin
2017-09-08 19:03:52 +08:00
@liyvhg 跳板机我没有操作权限。。
xi_lin
2017-09-08 19:05:16 +08:00
@ysicing 应该不行,我没法操作跳板机
nanpuyue
2017-09-08 19:09:32 +08:00
Keyes
2017-09-08 19:39:17 +08:00
欢迎使用商业版

我们的产品也是类似,但是支持 ssh 端口转发,也支持 proxycommand
wangmingbuhaoqi
2017-09-08 19:50:23 +08:00
有 2 种方式 iptables nat 可行不?

ssh 的端口映射,尝试下,不过有条件,需要有个外网机
http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html
xi_lin
2017-09-08 21:17:02 +08:00
@nanpuyue
@wangmingbuhaoqi
前面说了我没有跳板机的操作权限。。。
跳板机是有一层屏蔽的,不是单纯的中间代理,连上后有菜单要选择下一步跳转的机器
没法直接用原生 ssh 做转发的
xi_lin
2017-09-08 21:18:57 +08:00
@Keyes 谢谢指导,我研究下 proxycommand
joyqi
2017-09-08 21:53:06 +08:00
xi_lin
2017-09-08 23:00:29 +08:00
@Keyes
@terry0314
@liyvhg
@nanpuyue
@wangmingbuhaoqi
我想错了,ssh 转发应该行。只是我这里跳板机上自配了一层认证信息,我好像没法传递这个认证

我的机器 A,跳板机 B,目标机 C
A 连接 B,靠认证信息 x
B 连接 C,靠认证信息 y
我试着直接靠 B 做代理转发,会在 B 的输出上看到提示
channel 3: open failed: administratively prohibited: open failed
liyvhg
2017-09-08 23:03:06 +08:00
@xi_lin #13 监听高位端口(端口号>1024)就不需要特权, 例如 11022
xi_lin
2017-09-08 23:11:54 +08:00
@liyvhg 好像还没到监听端口这一步,我权限验证还没传递过去,连不上目标机 C
johnlui
2017-09-08 23:20:33 +08:00
感谢楼主提供的好工具。

可以试试 Nginx TCP 反向代理,相当好用呦
phenix77
2017-09-09 00:38:28 +08:00
使用 ssh 开隧道不行么,A 机器端口:111 (随意设),目标机 C 端口:222,跳板机 B
ssh -L 111:C:222 B
在机器 A 访问 localhost:111 即可
ryd994
2017-09-09 03:05:18 +08:00
后面的机器联网么?联网的话用 ngrok 之类的直接打出来,虽然明显很不安全
cxbig
2017-09-09 03:17:45 +08:00
@xi_lin
B 和 C 的授权都是什么类型?用不同 ssh 私钥都不是问题,本地做一个 ForwardAgent yes,在~/.ssh/config 配置好即可

Host *
ForwardAgent yes

Host B
HostName x.x.x.x
IdentityFile ~/.ssh/key-a
User aaa
....

Host C
HostName y.y.y.y
IdentityFile ~/.ssh/key-b
User bbb
ProxyCommand ssh -q -W %h:%p B
...

只要 B 到 C 的登录信息是固定的,就可以这样配置

然后应该是可以直接在本地登录 C:
ssh C
能登录就可以做通道:( 9000 为例)
ssh -f -N -L 9000:127.0.0.1:9000 C
nadoo
2017-09-09 11:42:59 +08:00
tmate 这个软件是否可以?共享 ssh

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/389256

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX