Подключитесь к нескольким машинам через jumphost по ssh и соберите некоторую информацию

Подключитесь к нескольким машинам через jumphost по ssh и соберите некоторую информацию

Недавно столкнулся с ситуацией, с которой не знаю, как справиться. Например, обычно мне сначала приходится подключаться к jumphost , а затем ( или ), затем то же самое, чтобы войти в систему. Теперь я хочу написать скрипт, который может автоматически входить во все системы, чтобы выполнить какую-то команду для сбора информации (в частности, чтобы увидеть использование графического процессора машины), чтобы я мог узнать все об использовании графического процессора на всех машинах с помощью одного скрипта, но не знаю, как это сделать. Я попробовал конфигурацию 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/'.

Связанный контент