经常在Mac下使用Iterm4的朋友肯定遇见过这种情况,每次连接某个远程服务器总是要一遍遍的敲用户名、密码。 那么能不能像Windows的软件一样,可以直接让软件记住。每次只要点击一下,就直接ssh到远程服务器上面去了,答案当然是可以了,这里推荐使用expect脚本来实现。
#!/usr/bin/expect
set timeout 30
spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
expect {
"(yes/no)?"
{send "yesn";exp_continue}
"password:"
{send "[lindex $argv 3]n"}
}
interact
这里[lindex $argv 0], [lindex $argv 1], [lindex $argv 2], [lindex $argv 3] 分别代表着4个参数 分别是 端口号 用户名 ip地址 以及密码
将这个文件 item4login.sh 复制到 /usr/local/bin 就可以了
在iterm4的账户登录配置里,直接使用LoginShell的方式登录即可
例子 item4login.sh root 123 123
需要注意一点,如果你的密码包含特殊符号,会使expect中的send语法出现错误,所以只要将密码中的特殊符号使用\转义一下就可以了
原密码 12@3
例子 item4login.sh root 123 12\@3