リモートポートフォワードを実行すると、la -R 3690:localhost:3690
リモートホストのポートにバインディングがすでに存在する場合、次の警告が表示されます。
Warning: remote port forwarding failed for listen port 3690
警告を発するだけでなく、sshを失敗させる(つまり、ゼロ以外の戻りコードで終了する)方法はありますか?
走る
ssh -o ExitOnForwardFailure=yes ...
または置く
ExitOnForwardFailure yes
~/.ssh/config
に挿入します。詳細については、man ssh_config
をご覧ください。
ターゲットホストでbashスクリプトを使用して、転送が正しく開かれたことを確認します。 SSH接続はこれを実行し、ポート転送に問題がある場合は終了します。
クライアント側のスクリプト:(これはポート転送設定に.ssh/configを使用します)
#!/bin/bash
while true; do
echo -n starting at : "
date
ssh user@server bin/sshloop.sh
echo "got back, sleeping 17 "
sleep 17
done
サーバー側スクリプト(bin/sshloop.sh)
#!/bin/bash
while true; do
echo $(date)" : SSH Reverse 1090:80, 1232:22 From Server to Client"
sleep 17
if ! netstat -an | grep -q ":::1090 " ; then
echo "1090 forward missing, bailing out"
exit
fi
done
多分-dmSを使用して画面下でクライアント側のスクリプトを実行する