SHH打洞配置
拿三台机器举例打洞配置讲解
机器 | 网络环境 | 用途 | SSH服务 |
---|---|---|---|
A机器 | 公网IP固定 | 中转机器 | 需要 |
B机器 | NAT网络 | 被访问机器 | 需要 |
C机器 | 任意网络环境 | 需要访问B机器 | 不需要 |
自动连接重试
需要B机器向A机器建立 SSH 反向隧道,命令如下:
autossh -p 22 -M 6777 -NR '*:6766:127.0.0.1:22' usera@a.site
通过 autossh
可以实现连接失败自动重连,*:6766:127.0.0.1:22
是将A机器的6766端口转发到B机器的22端口,usera@a.site
是请求B机器的用户名和地址。
打洞
开启端口转发功能,编辑 sshd 的配置文件 /etc/ssh/sshd_config,增加配置:GatewayPorts yes
另一台机器连接
通过C机器对A机器的6766端口发起连接就会自动被转发到B机器。
ssh -p 6766 userb@a.site
SSH 私钥认证
把请求机器的 ~/.ssh/id_rsa.pub 添加到被请求机器的 ~/.ssh/authorzied_keys 文件中
同时设置文件权限为 chmod 600 ~/.ssh/authorzied_keys
设置后在连接机器的时候就不需要密码了,可以走私钥认证。
守护进程
这里通过 supervisord 配置保证B机器重启后 autossh 能启动。
有固定公网IP的机器
这里我选用的是阿里云的机器,因为平时用的量不大,所以选择按量付费就可以了,看了下费用大概 80RMB/月。
参考:
http://blog.csdn.net/lidongshengajz/article/details/73482908
https://linux.cn/article-5975-1.html