【背景】
有三台主机 A、S、B,系统均为Linux。主机 A 和主机 B 在各自不同的内网,主机 S 为一台具有公网 IP 的云主机。主机 A 与主机 B 都可以通过 ssh 连接主机 S。如下图:
【需求】
主机 A 需要通过主机 S 连接主机 B。
【方法】
1、设置主机 S。
1.1、编辑 /etc/ssh/sshd_config 文件,在里面修改或添加:
1
|
GatewayPorts yes
|
1.2、重启 sshd 服务。
1
|
sudo
service sshd restart
|
2、设置主机 B。
2.1、方式一:用 ssh
1
2
3
4
|
ssh
-fNR portS:localhost:22 userS@pubIpS
# portS 是主机 S 的某个开放端口
# userS 是主机 S 的一个用户
# pubIpS 是主机 S 的公网IP
|
2.2、方式二:用 autossh
1
2
3
|
autossh -M 3456 -NR portS:localhost:22 userS@pubIpS -p22
# -M 参数没大弄明白,大概是通过这个端口监听以便自动重连吧
# 输入密码后可以用 Ctrl-Z 放到后台
|
3、主机 A 通过 ssh 连接上主机 S 后。这样连接主机 B:
1
2
3
|
ssh
userB@localhost -p portS
# userB 为主机 B 的用户
# portS 与上一步的 portS 是同一个端口
|
相关阅读:SSH反向连接及Autossh
*** walker ***
本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1947976如需转载请自行联系原作者
RQSLT