ssh経由でジャンプホストを介して複数のマシンに接続し、情報を収集する

ssh経由でジャンプホストを介して複数のマシンに接続し、情報を収集する

最近、対処方法がわからない状況に遭遇しました。たとえば、通常は最初に によって jumphost に接続し、次に(または)、次に同じ方法でログインする必要がありますが、今度は、すべてに自動的にログインしていくつかのコマンドを実行し、情報を収集するスクリプト (具体的には、マシンの GPU 使用状況を確認する) を作成し、1 つのスクリプトですべてのマシンのすべての GPU 使用状況を確認できるようにしたいと考えていますが、方法がわからないため、次のような ProxyJump 構成を試しました。ssh [email protected]passwordssh machine1machine2 machine3 machine4,...passwordmachines(machine1, machine2, machine3, machine4,...)nvidia-smi

Host betajump
  HostName [email protected]

### Host to jump to via jumphost1.example.org
Host machine1
  HostName user@machine1
  ProxyJump betajump

しかし、ssh machine1 を試しても機能せず、次のプロンプトが表示されます:

ssh: /home/cc/Downloads/software/envs/py2/lib/libcrypto.so.1.0.0: no version information available (required by ssh)
ssh: /home/cc/Downloads/software/envs/py2/lib/libcrypto.so.1.0.0: no version information available (required by ssh)
/home/cc/.ssh/config: line 7: Bad configuration option: proxyjump
/home/cc/.ssh/config: terminating, 1 bad configuration options

この仕事があっても、自分が望む仕事をするためのアイデアがまだありません。誰か助けてくれませんか?

答え1

このプロセスをスクリプト化したいとおっしゃっていますが、パスワードを使用しているため、処理が遅くなります。認証にパスワードではなく秘密鍵を使用するように切り替えることを検討してください。

まず最初に、OpenSSH 7.3 以降にアップグレードすることをお勧めします。バージョン 7.6 は現在リリースされており、7.3 は 2016 年にリリースされたため、お使いのディストリビューションに適した何らかの形式で事前にパッケージ化された状態で入手できる可能性は十分にあります。そうでない場合は、おそらくそれを見つけてコンパイルすることができます。これにより、受信している構成エラーが解決されます。

それが不可能な場合 (6.6.1 のままにしておく必要がある場合)、コメントでリンクしたサイトに記載されている、より厄介なアプローチを実装してみてください。OpenSSH wiki ゲートウェイの連鎖について

これで接続をスクリプト化できるようになりますが、冒頭で述べたように、パスワードプロンプトはチェックするマシンの数の2倍程度になります。これはすぐに飽きてしまう可能性があるので、次のことを検討することをお勧めします。公開鍵認証

ライブラリの問題は、まったく別の問題であり、かなり複雑で、この特定の問題に対処することを妨げるものではないため、詳細には触れません。まずは「man ldconfig」を実行して、LD_LIBRARY_PATH がどのように設定されているかを確認し、そこから「/home/cc/Downloads/software/envs/py2/lib/」がそこに表示される理由を突き止めることをお勧めします。

関連情報