リバースSSH接続を自動的に再接続

リバースSSH接続を自動的に再接続

私は走っています:

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

これはうまくいきますが、いつでも私のパイにアクセスできるようにこの接続を開いたままにしたいと思います。一日二日待って試してみても接続できませんね。パイで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

関連情報