内网机器修改文件/etc/ssh/sshd_config
GatewayPorts yes
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 3
内网机器向跳板机配置免密登录,在内网机器上执行
$ ssh-keygen
# ... enter ...
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@222.222.222.222
# root是vps的用户名,222.222.222.222是vps的公网IP
跳板机执行
sudo ssh -fCNL *:1234:localhost:1151 localhost
内网执行
sudo autossh -M 1152 -fCNR 1151:localhost:22 root@222.222.222.222
配置autossh服务,开机启动
在ubuntu中,可以在lib/systemd/system目录下新建一个autossh.service的文件,并输入以下内容
[Unit]
Description=autossh
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
Environment="AUTOSSH_GATETIME=0"
User=lvzhiqiang
Group=lvzhiqiang
WorkingDirectory=/home/lvzhiqiang
ExecStart=/usr/bin/autossh -M 1153 -N -R 1151:localhost:22 root@222.222.222.222 -i ~/.ssh/id_rsa
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
配置好后,通过以下指令完成启动、查询和自启动
sudo systemctl daemon-reload
sudo systemctl start autossh.service
sudo systemctl status autossh.service
sudo systemctl enable autossh.service