Nohupを使用している場合でも、GNUパラレルを使用するとssh_askpass権限が拒否されました。

Nohupを使用している場合でも、GNUパラレルを使用するとssh_askpass権限が拒否されました。

外部ノードネットワークを介してコードを実行しようとしています。 「マスター」ノードへのアクセス権を持ち、利用可能な5つのノードのクラスタ全体にわたってタスクを分割するスクリプトをssh実行できます。他の前提条件とともに、このコマンドを含むスクリプトがparallelあります。bashparallel

私が使用した最後のコマンドは次のようになりました。

parallel -S node0,node1,node2,node3,node4 --ssh-delay 0.25 --delay 0.5 'run {1} {2}' ::: foo ::: bar

しかし、私が作業しているクラスターは比較的頻繁に停止することが知られています。たとえば、約5分間アイドル時間が経過するとエラーが発生し、Broken pipe接続sshが切断されます。そのため、上記のbashスクリプト(上記のparallel行を含む)を実行してnohupssh接続をアクティブに保つ必要があります。

ただし、実際のコードにはかなりの計算時間が必要なため、SSHの切断に関連するエラーが発生します。

ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory^M
Permission denied, please try again.

ボスノードから別のノードにnode0接続してもパスワードは必要ありません。これにより、空席がなくなったという苦情やログインできないという警告メッセージがnode1表示されます。parallel

parallel: Warning: There are no job slots available. Increase --jobs.
parallel: Warning: Using only -1 connections to avoid race conditions.
parallel: Warning: ssh to node0 only allows for 0 simultaneous logins.
parallel: Warning: You may raise this by changing /etc/ssh/sshd_config: MaxStartups and MaxSessions on node0.
parallel: Warning: You can also try --sshdelay 0.1

私は、ボスノードへの接続を閉じた結果、クラスタ内の他のノードへのSSH接続を早期に閉じるのは難しいことが進行していると思いますnode0

ssh-agentssh-copy-idおよびGNUパラレルチュートリアルに従って接続を確立し、sshpassMaxStartupsおよびMaxSessionsパラメータを設定しようとしましたが、/etc/ssh/sshd_config役に立ちませんでした。さらに、コード計算時間を短縮すると、並列命令が完全に実行され、期待どおりに動作します。

かなり長い時間がかかるプログラムを実行するときにSSH接続が中断されないようにする方法はありますか?parallelそれとも別のことが起こっていますか?

ベストアンサー1

接続を維持するServerAliveIntervalには で設定できる.ssh/config

おすすめ記事