mac下通过Linux expact命令实现iterm2保存账号密码登录

一、新建一个exp文件
# cd /usr/local/bin 
# touch iterm2login.exp 
# vim iterm2login.exp
二、编写文件内容(trap一定要加上,expect会导致窗口缩放,vim错乱问题
#!/usr/bin/expect
#trap sigwinch spawned
#捕获窗口大小改变的信息
trap {
    set rows [stty rows]
    set cols [stty columns]
    stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH

set timeout 30
spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
expect {
    "(yes/no)?"
    {send "yes\n";exp_continue}
    "password:"
    {send "[lindex $argv 3]\n"}
}
interact
 三、给文件可执行权限
# chmod +x iterm2login.exp
四、配置 profile
1. 打开iterm2,command+,进入设置,点击Profiles即可。或者command+o打开profiles(再者菜单Profiles->Open Profiles),点击右下角的Edit Profiles ,配置profile,如下图:
2. command 那里就是填 expect + 脚本名字(绝对路径) + 端口号 + 用户名 + 服务器ip + 密码
expect /usr/local/bin/iterm2login.exp 22 root 192.168.1.30 root root
 3. 打开iterm2,command+o打开profiles菜单,点击自己配置的profile name。

 

多台服务器账号密码相同,或者账号密码不显示方式

一、新建一个exp文件
# cd /usr/local/bin 
# touch iterm2same.exp 
# vim iterm2same.exp
二、编写文件内容(trap一定要加上,expect会导致窗口缩放,vim错乱问题
#!/usr/bin/expect
#trap sigwinch spawned
#捕获窗口大小改变的信息
trap {
    set rows [stty rows]
    set cols [stty columns]
    stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH

set PORT 22
set USER root
set PASSWD root

set timeout 30
spawn ssh -p $PORT $USER@[lindex $argv 0]
expect {
    "(yes/no)?"
    {send "yes\n";exp_continue}
    "password:"
    {send "$PASSWD\n"}
}
interact
 三、给文件可执行权限
# chmod +x iterm2same.exp
四、配置 profile
1. 打开iterm2,command+,进入设置,点击Profiles即可。或者command+o打开profiles(再者菜单Profiles->Open Profiles),点击右下角的Edit Profiles ,配置profile,如下图:
2. command 那里就是填 expect + 脚本名字(绝对路径) + 服务器ip
expect /usr/local/bin/iterm2login.exp 192.168.1.30
 3. 打开iterm2,command+o打开profiles菜单,点击自己配置的profile name。

您可以选择一种方式赞助本站

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: