自动重新连接反向ssh连接

自动重新连接反向ssh连接

我在跑:

ssh -N -R 2222:localhost:22 [email protected]

这是有效的,但我想保持这个连接打开,这样我就可以随时访问我的 pi。当我等待一两天后尝试时,我无法连接。当我检查 pi 上的 tmux 会话时,它说:

写入失败:管道损坏

如何设置脚本以自动重新连接?

答案1

对于现在正在寻找此服务的人,我发现 systemd 服务比 autossh(运行 Debian 10.4)更可靠。就我而言,autossh 经常在几天后失败,systemd 解决方案运行数周/数月没有问题。

/etc/systemd/system/ssh_remote_access.service 的内容:

[Unit]
Description=SSH reverse tunnel
After=network.target

[Service]
User=PUT_YOUR_LINUX_USER_NAME_HERE
Restart=always
RestartSec=20
ExecStart=/usr/bin/ssh -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -o "ExitOnForwardFailure yes" -N -R 2222:localhost:22 [email protected]

[Install]
WantedBy=multi-user.target

然后激活服务:

sudo systemctl daemon-reload
sudo systemctl enable ssh_remote_access
sudo systemctl start ssh_remote_access

相关内容