跳到主要内容

autossh

autossh 启动并监控 ssh,连接退出后重新拉起,适合需要长期保持的端口转发;认证、转发目标和访问权限仍由 OpenSSH 决定。

安装与基本使用​

Debian / Ubuntu 示例。先确认普通 ssh 连接和免交互认证可用,再运行 autossh:

sudo apt-get install autossh
autossh -V
ssh -N -L 127.0.0.1:8080:127.0.0.1:80 user@example.com
autossh -M 0 -N -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes -L 127.0.0.1:8080:127.0.0.1:80 user@example.com

以上两条转发命令是先试 SSH、再切换到 autossh 的步骤,不能同时占用本机 8080 端口。-M 0 关闭 autossh 自有监控端口;此时依赖 SSH 的 ServerAlive* 选项在失联时退出,autossh 才能重启。ExitOnForwardFailure=yes 让端口转发建立失败尽早报错。长期运行可交给 systemd 管理;不要关闭主机密钥校验,也不要把口令写进命令。

参考资料​