拿三台机器举例打洞配置讲解
机器 | 网络环境 | 用途 | 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/id_rsa.pub 添加到被请求机器的 ~/.ssh/authorzied_keys 文件中
同时设置文件权限为 chmod 600 ~/.ssh/authorzied_keys
设置后在连接机器的时候就不需要密码了,可以走私钥认证。
这里通过 supervisord 配置保证B机器重启后 autossh 能启动。
http://blog.csdn.net/lidongshengajz/article/details/73482908 https://linux.cn/article-5975-1.html