引入

在公司中需要使用跳板机登录服务器,这时候登录需要数据多次命令,十分麻烦。在同事的指点下,使用了 expect + iterm 的配置直接登录,十分方便。

跳转机添加自己的公钥

在文件 ~/.ssh/authorized_keys 中将自己的公钥字符串添加

安装 expect

1
yum install expect

expect 登录脚本

vim login.exp

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/usr/bin/expect

// 设置超时 30 s
set timeout 30
// ssh 登录 参数 0 为 user 参数 1 为 hosts
spawn ssh [lindex $argv 0]@[lindex $argv 1]
expect {
// 当首次登录需要确认对方服务器身份时输出 yes
        "(yes/no)?"
        {send "yes\n";exp_continue}
// 如果需要输入密码则键入参数 2
        "password:"
        {send "[lindex $argv 2]\n"}
}
//交互模式,用户会停留在远程服务器上面
interact

Iterm 配置

在 Iterm 中打开设置,进行如下配置

Profiles -> Open Profiles -> Edit Profiles

44B81F81-2F08-40AA-ADDD-0DB49C93267F

  • Command 中添加登录掉跳板机的语句 ssh xxxxx
  • Send text at start 中添加从跳板机登录到服务器的语句,如上脚本中设置的参数顺序为 login.exp user host passwd ,如此填写即可
  • 修改 Name 和 Shortcut key 方便之后查看和快速登录