iTerm2创建ssh自动登陆脚本

iterm2保存ssh密码自动登录

前提:
    OS: macOS Big Sur 11.6 ITerm2: 3.4.10 CPU: x86架构
由于mac没有xshell也没有MobaXterm,找了个据说最好使的iTerm2。但是,iterm2不方便保存远程服务的会话,每次都要输入ip和密码登录。所以结合配置脚本来实现保存ssh密码功能。

一.创建ssh自动登陆脚本

1.1进入任意目录下后创建登陆脚本

cd /xxx/xxx
touch login.sh

1.2编辑登陆脚本

vim login.sh
#!/usr/bin/expect

set timeout 30
spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
expect {
          
   
        "(yes/no)?"
        {
          
   send "yes
";exp_continue}
        "password:"
        {
          
   send "[lindex $argv 3]
"}
}
interact
    $argv 0 代表调用脚本的第一个参数 端口号(22) $argv 1 代表调用脚本的第二个参数 远程服务用户名(root) $argv 2 代表调用脚本的第三个参数 远程服务的ip (192.168.1.11) $argv 3 代表调用脚本的第四个参数 远程服务的密码 端口不需要输入的时候,删除-p [lindex $argv 0],并将后面的参数index都跟着减一

1.3 给脚本增加可执行权限

sudo chmod 777 login.sh

二.配置profile

Preferences --> profiles --> General --> Command --> Login Shell --> Send text at start

/Users/mac/mylogin/login.sh 22 root 192.168.1.54 test123

注意:如果密码中包含特殊字符需要输入参数的时候转义

#例:test$123 => test$123
/Users/mac/mylogin/login.sh 22 root 192.168.1.54 test$123

三.使用配置好的profile

在iTerm2界面使用快捷键 command + O ,选择选择编辑好的profile,就可以使用啦!

经验分享 程序员 微信小程序 职场和发展