ssh反向隧道
Contents
一般内网主机没有公网IP,因此在外网无法通过IP连接登录内网主机。为解决此问题,可以使用ssh反向隧道。设公网拥有固定IP的主机为A(可以使用VPS作为公网主机),设内网主机为B, 设需要访问主机B的主机为C。
配置主机A
配置主机A的 /etc/ssh/sshd_config ,添加项GatewayPorts yes
,然后重启sshd服务,sudo systemctl restart sshd
。
如果使用公钥验证,需要把主机B的公钥 ~/.ssh/id_rsa.pub 传送到主机A上的 ~/.ssh 目录下。
在主机B上安装autossh并设置开机运行
sudo apt-get install autossh
设置autossh的开机启动项:
|
|
注意此处usera为A上对应的用户, 6766为主机C进行ssh连接时的访问端口。
然后运行sudo chmod 755 /etc/systemd/system/autossh.service
修正权限。sudo systemctl enable NetworkManager-wait-online
,使得network-online.target生效。
sudo systemctl enable autossh
, 使得autossh启动项配置生效,然后执行sudo systemctl start autossh
启动autossh。service autossh status
即可查看autossh运行状态,running状态为正常。
配置主机C
在主机C的 ~/.ssh/config 目录中写入相关配置。
|
|
运行ssh reverse
即可访问主机B上的目标账户userb。
Author Yaqiu Liu
LastMod 2018-01-21