在日常工作中,我尝尝需要使用ssh连接很多个服务器。而最经常连接的也就那么几个,一个一个手动输入指令实在麻烦,因此写了一个脚本来自动化地执行这些指令。
免密登录服务器
ssh-keygen
创建一个新的密钥对
将公钥复制到服务器ssh-copy-id user@my.server.com
从现在起,服务器应该识别你的密钥,而不再要求输入密码。
编写脚本
我的脚本如下:1
2
3
4
5
6
7
cmd='watch -n 1 nvidia-smi'
gnome-terminal \
--window -e "ssh node0 " \
--tab -e "ssh -t node0 $cmd" \
--tab -e "ssh -t node1" \
--tab -e "ssh -t node1 $cmd" \
这里的node0是我在ssh的设置里面设置的别名,如果没有别名,使用`user@my.server.com`替代即可。
这样就可以新建一个terminal window,并且在其中打开4个tab,分别连接到node0和node1,每个node有2个tab,一个用于操作,一个用于实时查看服务器GPU使用情况。