tiger-sms ChatGPT 账号/ChatGPT 代注册 OpenAI API 代充值

iTerm2 保存 SSH 用户名密码并自动登录连接教程

dajiaka OpenAI API key

最近老王把 MacBook 重装了下,重装前把 iTerm2 的 Profiles 导出保存了,但是导入到新的 iTerm2 后发现之前保存的 SSH 信息以及 SSH 自动登录是基于一个脚本的,网上找了好久才找到相关的代码,本文记录下 iTerm2 保存 SSH 信息和 iTerm2 SSH 自动登录教程。

一、配置 SSH 自动登录脚本

/usr/local/bin 下新建一个文件 iterm_ssh.sh,代码如下(如果 /usr/local/bin 路径不存在,则先创建路径:sudo mkdir /usr/local/bin):

#!/usr/bin/expect


set timeout 30
set host [lindex $argv 1]
# 这一行是设置一个变量的意思,变量名随便起,尽量有意义,后面表示的是传入的参数,0 表示第一个参数,后面会用到。
set port [lindex $argv 2]
set user [lindex $argv 0]
set pswd [lindex $argv 3]


spawn ssh -p $port $user@$host
# spawn 是 expect 环境的内部命令,它主要的功能是给 ssh 运行进程加个壳,用来传递交互指令。


expect {
        "(yes/no)?"
        {send "yes\n";exp_continue;}
      -re "(p|P)ass(word|wd):"
        {send "$pswd\n"}
}
# expect 也是 expect 环境的一个内部命令,用来判断上一个指令输入之后的得到输出结果是否包含 "" 双引号里的字符串,-re 表示通过正则来匹配。
# 如果是第一次登录,会出现 "yes/no" 的字符串,就发送(send)指令 "yes\r",然后继续(exp_continue)。


interact
# interact:执行完成后保持交互状态,把控制权交给控制台。

赋予脚本执行权限:

sudo chmod +x /usr/local/bin/iterm_ssh.sh

二、iTerm2 保存 SSH 信息并自动登录

回到 iTerm2,Profiles -> Open Profiles -> Edit Profiles,新建一个 Profile,Command 选 Login Shell,Send text at start 填 iterm_ssh.sh root 120.25.**.** 22 40Ex48ACCmtSEsV,其中 root 是用户名,120.25.*.* 是 IP,22 是端口,40*** 是密码:

iTerm2 保存 SSH 信息并自动登录

之后,再需要通过 iTerm2 远程连接这台服务器时,只需要在菜单栏的 Profiles 里找到这个保存的 Profile 单击就可以自动填充 SSH 信息并连接了:

iTerm2 保存 SSH 信息并自动登录

赞(0)
关注我们
未经允许不得转载:老王博客 » iTerm2 保存 SSH 用户名密码并自动登录连接教程