在iTerm2下ssh不能自动登录,不自动登录每次输入命令太麻烦了。这里介绍一个采取expect脚本的方式实现iTerm2下ssh自动登录。
- 新建一个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
该脚本需要四个参数,
远程地址
远程端口
远程用户名
用户密码
将expect脚本copy到$PATH下(例如/usr/local/bin)
cp login.exp /usr/local/bin/login.exp-
在iterm2中设置登录脚本,用command+o的方式呼出profiles,点击Edit Profiles
接着新建一个Profile,这里以我的webserver为例
在红色涂抹的部分分别制定设置脚本、以及上面的四个参数。如
login.exp 地址 端口 用户名 密码
之间用空格分离。
4.使用
配好后,只要command+o的方式呼出profiles,双击需要打开的Profile。