AutoSSH 使用笔记

场景

ISP出口无分配公网IP地址,查看出口路由WAN接口获取到的地址为:100.xx.xx.xx,为保留地址。外网有主动访问到服务内部需求。现有资源如下:

  • 公有云主机(阿里云)
  • 公网中有LINUX服务器

方案

autoSSH

实现步骤

1、创建SSH证书密钥对

<略>

2、内网服务器配置

2.1 安装软件包

# yum/apt install autossh

2.2 ssh 远程定义

Host server
  User root
  Hostname xxx.xxx.xxx.xxx
  RemoteForward 8848   0.0.0.0:22
  RemoteForward 443    0.0.0.0:443
  IdentityFile ~/.ssh/stunnel
  Port 22
  PreferredAuthentications publickey
  ForwardAgent yes

Tips:这里将本机的22、443端口扔到隧道,通过公网主机的8848、443端口访问进来。

2.3 创建systemd服务文件

# cat > /etc/systemd/system/autossh.service << EOF
Description=Keep a tunnel to 'Stunnel-Server' open 
After=network.target

[Service]
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" root@server -p 22

[Install]
WantedBy=multi-user.target

EOF

2.4 服务启动

systemctl daemon-reload
systemctl restart autossh