其实就是使用脚本来代替我们输入命令:
1.新建一个SSH文件
这里我在用户目录下新建一个文件夹,存放我们的ssh文件
mkdir sshConfig
cd sshConfig
vim test1.ssh
2.写脚本
上半部分是定义我们的用户名,密码,端口,xxx部分按照你自己的填写就行了
#!/usr/bin/expect -f
set user root
set host xxx.xxx.xxx.xxx
set password xxx
set port xx
set timeout -1
spawn ssh $user@$host -$port
expect "password:*"
send "$password\r"
interact
3.执行
expect test1.ssh
大功告成!这样既不需要其他远程软件,也不需要手输账密了。缺点是每个服务器都需要建立一个ssh文件。
2020.04.01更新
发现用这种方法登陆会导致无法用rzsz命令,我们可以使用一个shell脚本解决:
#!/bin/sh
export LC_CTYPE=en_US
expect ssh文件路径
另存为sh文件,每次执行这个脚本就行了
不过既然已经使用了shell脚本,我们就没必要每个ssh都对应一个shell脚本了,我们可以把它们汇集到一起,通过输入序号选择服务器:
#!/bin/sh
echo "===服务器列表==="
echo "1.A服务器"
echo "2.B服务器"
echo "3.C服务器"
echo "4.D服务器"
echo "================"
echo "请输入您要登录的服务器序号:"
read sort
clear
export LC_CTYPE=en_US
case $sort in
"1" )
expect ssh文件路径
;;
"2" )
expect ssh文件路径
;;
"3" )
expect ssh文件路径
;;
"4" )
expect ssh文件路径
;;
* )
echo "您输入的序号不正确!"
esac
这样,每次运行这一个sh就行了。