[5/21/2019]外网主机ssh连接内网服务器

学习记录

1.外网主机ssh连接内网服务器

(1)需求

本人有两台计算机,一台Windows 10,称为主机A,一台ubuntu18,称为主机B,主要使用Windows10。因此有远程到ubuntu18的需求

(2)解决方法

通过一台有公网ip的服务器(主机C)做主机B的SSH反向连接目标,主机Assh到主机C之后利用反向连接,连接到我们的目标主机B

(3)具体实现

主机B执行

ssh -NfR 4567:localhost:7777 [email protected] -p 22
参数解释:
4567为主机B监听端口
7777为主机B与主机C的绑定端口,即B的7777与C的22端口绑定

主机C执行

ssh username@localhost -p 7777

即可ssh连接主机B


(4)更方便的实现

由于ssh可能存在断连的情况,因此使用autossh帮助我们自动重连,此外也可以将主机B的id_rsa.pub公钥放到主机C上,实现免密登录

主机B执行
autossh -M 4567 -NR 4567:localhost:7777 [email protected] -p 22
主机C执行
ssh username@localhost -p 7777

公私钥生成方法

主机B执行
①ssh-keygen,一路默认
②cd ~/.ssh/
③cat id_rsa.pub >> ~/.ssh/authorized_keys  => 复制B主机上生成的id_rsa.pub公钥到外网A主机上,并将内容加入到~/.ssh/authorized_keys中
③或者:ssh-copy-id [email protected](主机C的用户和ip)

(5)结合其他

/etc/rc.local 自动启动
screen 后台运行

2.ubuntu18 ssserver

你可能感兴趣的:(【每日学习】)