永続的なリバースSSHトンネルを作成する場合、systemdを実行しているシステムでautosshは役立ちますか?通常、autosshは、オプション-Mをゼロに設定してリンクの監視を無効にするサービスによって実行されます。つまり、autosshが再起動する前に、sshを終了する必要があります。マニュアルページから:
モニターポートを0に設定すると、モニター機能がオフになり、autosshはsshの終了時にのみsshを再起動します。たとえば、OpenSSHの最新バージョンを使用している場合、ServerAliveIntervalおよびServerAliveCountMaxオプションを使用して、サーバーに接続されていないことが判明した場合にSSHクライアントを終了させることができます。多くの点で、これはモニタリングポートよりも優れたソリューションである可能性があります。
Systemdサービス自体は、次のオプションを含むサービスファイルを使用してこれを実行できるようです。
Type=simple
Restart=always
RestartSec=10
それでは、systemdサービスで実行するとautosshは冗長になりますか?それとも、SSH接続を維持するのに役立つ他のことをしていますか?
ありがとう。
両方を試すのは比較的簡単なので、両方のアプローチの信頼性をテストして、自分で確認してください。
autossh
の方が適していると思います。 autossh
はforegroundで実行するように設計されていますが、systemd
は主にbackground特定の-に接続されていないサービス用に設計されています[〜#〜] tty [〜#〜]。
また、autossh
には、タスクに固有の機能が少なくとも1つあります。
定期的に(デフォルトでは10分ごとに)、autosshはモニター転送ポートでトラフィックを通過させようとします。これが失敗すると、autosshは子sshプロセスを強制終了し(まだ実行中の場合)、新しいプロセスを開始します。
したがって、autossh
はプロセスを実行し続けるだけでなく、ssh
接続が実際に機能していることを確認しています。