通过 ssh 通过 jumphost 连接到多台机器并收集一些信息

通过 ssh 通过 jumphost 连接到多台机器并收集一些信息

最近遇到了一种我不知道如何处理的情况,比如说,我通常必须先连接到jumphost,然后,然后(或),然后同样登录,现在我想编写一个脚本,可以自动登录所有运行一些命令来收集信息(具体来说是查看机器的GPU使用情况),这样我就可以用单个脚本知道所有机器上的所有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/”出现在其中。

相关内容