web-dev-qa-db-ja.com

ポート転送が失敗した場合にsshを失敗させる方法

次のようなコマンドを使用して、sshを実行してポートフォワードを作成するbashスクリプトがあります。

ssh -N -i keyfile -L 1000:localhost:22 *remote_ip*

リッスンポートがビジーである場合があるため、このコマンドはエラーを出します。

channel_setup_fwd_listener: cannot listen to port: 1000
Could not request local forwarding.

ただし、ssh接続はアップしたままで、sshコマンドはブロックされます。これが発生したときにsshを実際に失敗させて、スクリプトで処理できるようにするにはどうすればよいですか?

残念ながら、Solaris(Intel)でもこれをサポートする必要があり、そこでのsshコマンドはExitOnForwardFailureオプションをサポートしていません-この場合のアイデアはありますか?

7
xorsyst

Sshのマニュアルページを確認すると、ExitOnForwardFailureという設定オプションがあり、コマンドラインで次のように指定できます。

-o "ExitOnForwardFailure yes"

すべてのsshconfigオプションは、ssh_configおよびsshd_configのマニュアルページで説明されています。このオプションがサポートされていない場合は、新しいバージョンのsshにアップグレードする必要があります。

幸運を。

14
etherfish

ExitOnForwardFailure yesファイルに'~/.ssh/config'を追加することもできます。

持っていない場合は作成してください。

正しいユーザーがファイルを所有していることを確認してください。

UnbuntuでsshサービスSudo service ssh restartを再起動します。

3
SteveT