为什么要弄这么个东西
比如:我每次要登录阿里云,每次我都要登录控制台去看阿里云的ip
是多少,比较麻烦,如果我把想要登录的Ip
都放在一个位置,那么我就可以不用登录阿里云平台就知道要登录机器的ip
了,并且登录的时候需要和命令行有个交互的过程,比较麻烦!
如何解决这些问题呢
编写shell
脚本登录ssh
服务器
MacOs:
brew install expect
类似unbuntu or centos也会有对应的命令
#!/usr/bin/expect -f
#指定执行该脚本的命令程序
# 设置ssh连接的用户名
set user root
# 设置ssh连接的host地址
set host 120.24.92.68
# 设置ssh连接的port端口号(不用的话无需设置)
#set port 9999
# 设置ssh连接的登录密码
set password gewenrui0.0@gmail.com
# 设置ssh连接的超时时间
set timeout -1
#使用expect的spawn命令来启动脚本和命令的会话
#spawn ssh $user@$host -p $port
spawn ssh $user@$host
#expect 判断上述结果是否包含password字符串
expect "*password:"
# 提交密码 交互动作
send "$password\r"
# 执行完成后保持交互状态,把控制权交给控制台.
interact
存放shell
文件夹结构可以类似:
shell(文件夹)
-- aliyuna_1xx.xxx.xxx.xxx.sh
-- aliyunb_1xxx.xxx.xxx.xxx.sh
执行
sudo chmod +x xxx.sh
./xxx.sh
我们就可以登录到服务器上啦