SSHはsshpassを使用して分岐できません。

SSHはsshpassを使用して分岐できません。

ポート転送コマンドでsshpassを使用する際に問題があります。問題は、あるサーバーでは機能しますが、別のサーバーでは機能しないことです。どちらもDebian 7 x64マシンです。

sshpass -p password ssh -f -D 0.0.0.0:2002  -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=debug [email protected] -T -N

このコマンドはサーバー1では問題なく実行されますが、サーバー2では機能しません。

失敗したサーバーデバッグの出力:

Authenticated to 5.5.5.5 ([5.5.5.5]:22).
debug1: Local connections to 0.0.0.0:2002 forwarded to remote address socks:0
debug1: Local forwarding listening on 0.0.0.0 port 2002.
debug1: channel 0: new [port listener]
debug1: forking to background

ジョブサーバーのデバッグ出力:

Authenticated to 5.5.5.5 ([5.5.5.5]:22).
debug1: Local connections to 0.0.0.0:2002 forwarded to remote address socks:0
debug1: Local forwarding listening on 0.0.0.0 port 2002.
debug1: channel 0: new [port listener]
debug1: forking to background
debug1: Entering interactive session.

sshpassとsshバイナリは両方のサーバーで同じです。 md5sumを使ってこれを確認しました。

何が間違っているのかを知っている人はいますか?私はこの謎を解こうと気を失いました。

ベストアンサー1

長い話を短く

これは私にとって効果的です。

sshpass -p password nohup ssh -f ... >/dev/null


まあ、私も心を失っています。
Debianホスト間に違いがあります。SSHパス動作するかどうかはCPUコアの数によって異なります。この問題はシングルコアホストで発生します。誰と遊ぶかストレス見せるSSHパス受信後、システムによってプロセスが終了します。ため息をつく。マルチコアホストでフォークSSHプロセスを設定するのに十分な時間があります。ため息をつくハンドラが死なないように処理します。
回避策として、次を使用できます。北面実行するユーティリティSSHパスだから死ぬため息をつく

おすすめ記事