学习记录
1.外网主机ssh连接内网服务器
(1)需求
本人有两台计算机,一台Windows 10,称为主机A,一台ubuntu18,称为主机B,主要使用Windows10。因此有远程到ubuntu18的需求
(2)解决方法
通过一台有公网ip的服务器(主机C)做主机B的SSH反向连接目标,主机Assh到主机C之后利用反向连接,连接到我们的目标主机B
(3)具体实现
主机B执行
ssh -NfR 4567:localhost:22 porlck@1.1.1.1 -p 22
参数解释:
4567为主机B监听端口,4567:localhost:22将22端口绑定到4567上
主机C执行
ssh username@localhost -p 4567
即可ssh连接主机B
(4)更方便的实现
由于ssh可能存在断连的情况,因此使用autossh帮助我们自动重连,此外也可以将主机B的id_rsa.pub公钥放到主机C上,实现免密登录
主机B执行
autossh -M 4568 -NR 4567:localhost:22 porlck@1.1.1.1 -p 22
主机C执行
ssh username@localhost -p 4567
公私钥生成方法
主机B执行
①ssh-keygen,一路默认
②cd ~/.ssh/
③cat id_rsa.pub >> ~/.ssh/authorized_keys => 复制B主机上生成的id_rsa.pub公钥到外网A主机上,并将内容加入到~/.ssh/authorized_keys中
③或者:ssh-copy-id porlck@1.1.1.1(主机C的用户和ip)
(5)结合其他
/etc/rc.local 自动启动
screen 后台运行