sshpass -p '1234567*' ssh -L 1080:192.168.0.1:2222 [email protected] -p 4422 -f -C -N
上記のコードはmacOSで機能します(ユーザー名adminとパスワード1234567 *を使用してgateway.com:4422経由で192.168.0.1:2222への1080トンネルを作成します)。\
Linuxでは動作しません-プロセスは実行され、すぐに終了するようです。
sshpass
+ ssh
の問題は、ssh
が最初にユーザーを認証し、子をフォークして接続を処理してから終了することです。ただし、sshpass
は、親ssh
が終了するとすぐに、子が端末から自分自身を切り離す前に、子の下からラグを引き出します(sshpass
)、その結果、SIGHUP
シグナルによって強制終了されます。
したがって、これは機能します。
sshpass -p '1234567*' sh -c 'ssh -L 1080:192.168.0.1:2222 [email protected] -p 4422 -f -C -N && sleep .1'