我最近遇到了一些困难,我想编写一个脚本来自动登录到嵌套服务器以收集每个服务器的一些信息:(具体来说,用于nvidia-smi
收集GPU usage info
每台机器上的信息)
嵌套的服务器结构是这样的:(
user@boss
)user@machine1, user@machine2, user@machine3, ...
通常我们必须使用ssh
登录user@boss
,然后ssh
到特定的机器来做我们的工作,但不方便监控所有机器的 GPU 使用情况,我尝试编写一个脚本,如:
sshpass -p "xxxx" ssh -o StrictHostKeyChecking=no [email protected]
for v in machine1 machine2
do
sshpass -p "xxxx" ssh -o StrictHostKeyChecking=no v
echo $v
nvidia-smi
done
但它只登录到user@boss,我不熟悉服务器的东西,user@boss是根节点,然后machine1,machine2,......是子节点?有人可以帮忙吗?(注意我没有root权限)
添加服务器,包括 user@boss 和 user@machine1, user@machine2, ... 都没有sshpass
安装,只ssh
支持
不要使用密码验证。仅使用公钥身份验证,并为您的 ssh 密钥设置良好、强大的密码短语。
请参阅为什么使用 SSH 密钥比使用密码更安全?以及有关密钥与密码的有趣讨论的链接和相关文章。
您可以将 ssh 配置为始终使用代理主机连接到远程主机。
例如在你的
~/.ssh/config
:然后
ssh machine1
将始终通过boss
.来自
man ssh_config
: