web-dev-qa-db-ja.com

autosshを使用してリバースSSHトンネルを開いたままにするための正しいオプション

厳密なファイアウォールの背後にあるLDAPサーバー(ldapserver)と、そのLDAPを使用して認証する必要があるファイアウォールの外側のサーバー(appserver)で実行されているWebアプリケーションをセットアップしています-切断します。

中間のように3番目のサーバー(tunnelserver)を正常に使用し、appserverで次のコマンドを実行してldapservertunnelserverの間にSSHトンネルを設定しました。 _:

ssh username@appserver -R 28420:ldapserver:389

唯一の問題は、時々パイプが壊れてSSHトンネルが失われることです。

解決策は autossh のようですが、私の限られたSSH知識はトンネルを機能させることがほとんどできず、autosshのオプションを正しく再指定するには不十分のようです。

任意のヒント?

3
mhermans

パラメータは基本的に同じです(autosshはそれらをsshに直接渡します)。 autosshをバックグラウンドにしたくない場合は、-fを削除してください。おそらく、-Nオプションでサーバー上でシェルを実行しないようにする必要があります。 -Mオプションの空きポートを選択します(上記のポートも空きである必要があります)。 Debian/Ubuntuでは、パッケージに空きポートを自動的に選択するラッパースクリプトが含まれているため、これを省略できます。

autossh -M 20000 -f -N -R 28420:ldapserver:389 username@appserver
6
mgorven

2013年に、リバーストンネルにautosshを使用すると、リモート側のsshdが終了していないことに気付きました。

スクリプトを使用してこれを回避し、トンネルを開始/停止/再起動しました(トンネルを開始するためにcrontabの@rebootに含めました)。ここでは、ssh forceコマンドを使用してリモートエンドを強制終了します。つまり、トンネルを停止(または再起動)するときです。

1
evanxsummers