iTerm2使用脚本自动登录远程服务器

2018-01-05  本文已影响0人  951丶

在iTerm2下ssh不能自动登录,不自动登录每次输入命令太麻烦了。这里介绍一个采取expect脚本的方式实现iTerm2下ssh自动登录。

  1. 新建一个expect脚本 login.exp

!/usr/bin/expect

if { [llength $argv] < 4 } {
puts "Usage: $argv0 ip port user passwd"
exit 1
}

set ip [lindex $argv 0]
set port [lindex $argv 1]
set user [lindex $argv 2]
set passwd [lindex $argv 3]
set timeout 30

spawn ssh -q -l$user -p$port $ip

expect {
"assword:" {
send "$passwd\r"
}
"FATAL" {
puts "\nCONNECT ERROR: $ip occur FATAL ERROR!!!\n"
exit 1
}
"No route to host" {
puts "\nCONNECT ERROR: $ip No route to host!!!\n"
exit 1
}
}

puts "\n—> Connected: $ip, pls enjoy yourself!\n"
interact

该脚本需要四个参数,

  1. 远程地址

  2. 远程端口

  3. 远程用户名

  4. 用户密码

  5. 将expect脚本copy到$PATH下(例如/usr/local/bin)
    cp login.exp /usr/local/bin/login.exp

  6. 在iterm2中设置登录脚本,用command+o的方式呼出profiles,点击Edit Profiles

    02108B6102882432AC76626EBBDE054F.jpg

接着新建一个Profile,这里以我的webserver为例

在红色涂抹的部分分别制定设置脚本、以及上面的四个参数。如
login.exp 地址 端口 用户名 密码
之间用空格分离。
4.使用
配好后,只要command+o的方式呼出profiles,双击需要打开的Profile。

上一篇下一篇

猜你喜欢

热点阅读