sshpassプロセスをバックグラウンドで維持する方法は?

sshpassプロセスをバックグラウンドで維持する方法は?

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では動作しません。プロセスがすぐに実行され、終了するようです。

ベストアンサー1

sshpass+の問題sshは、sshまずユーザーを認証し、接続を処理するために子プロセスをフォークしてから終了することです。ただし、sshpasssshプロセスが終了すると、端末から分離される前に(生成された擬似ttyによって)すぐに子プロセスの下から敷物が取り出されるため、sshpass信号によって終了しますSIGHUP

だからこれはうまくいきます:

sshpass -p '1234567*' sh -c 'ssh -L 1080:192.168.0.1:2222 [email protected] -p 4422 -f -C -N && sleep .1'

おすすめ記事