![通过 ssh 通过 jumphost 连接到多台机器并收集一些信息](https://linux22.com/image/1549835/%E9%80%9A%E8%BF%87%20ssh%20%E9%80%9A%E8%BF%87%20jumphost%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%A4%9A%E5%8F%B0%E6%9C%BA%E5%99%A8%E5%B9%B6%E6%94%B6%E9%9B%86%E4%B8%80%E4%BA%9B%E4%BF%A1%E6%81%AF.png)
最近遇到了一种我不知道如何处理的情况,比如说,我通常必须先连接到jumphost,然后,然后(或),然后同样登录,现在我想编写一个脚本,可以自动登录所有运行一些命令来收集信息(具体来说是查看机器的GPU使用情况),这样我就可以用单个脚本知道所有机器上的所有GPU使用情况,但不知道怎么做,我尝试了ProxyJump配置,如下所示:ssh [email protected]
password
ssh machine1
machine2 machine3 machine4,...
password
machines(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/”出现在其中。