背景

拥有一套虚拟机的root权限,并且掌握密码情况,如果通过编写互动式脚本,执行脚本完成一键登陆

互动脚本

#!/usr/bin/expect
set jump_server_pwd Zhang2019
catch {spawn ssh zhangc@11.124.32.65} # 登录跳板机
expect {
"(yes/no)?"
{send "yes\n";exp_continue}
"*assword:*"
{send "$jump_server_pwd\n";}
}
expect {
"*vlnx124032065" {
send "sudo\r";
send "pm2 list\r";
}
}
interact

脚本步骤分解


  1. 执行 ssh 登陆
  2. 捕获输入密码的提示,然后模拟输入密码
  3. 登堡目标机器后,切换为root权限
  4. 执行默认脚本