次のようなコマンドを使用して、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オプションをサポートしていません-この場合のアイデアはありますか?
Sshのマニュアルページを確認すると、ExitOnForwardFailureという設定オプションがあり、コマンドラインで次のように指定できます。
-o "ExitOnForwardFailure yes"
すべてのsshconfigオプションは、ssh_configおよびsshd_configのマニュアルページで説明されています。このオプションがサポートされていない場合は、新しいバージョンのsshにアップグレードする必要があります。
幸運を。
ExitOnForwardFailure yes
ファイルに'~/.ssh/config'
を追加することもできます。
持っていない場合は作成してください。
正しいユーザーがファイルを所有していることを確認してください。
UnbuntuでsshサービスSudo service ssh restart
を再起動します。