在日常工作中,经常要通过ssh连接远程服务器,每次连接都输入密码,会比较麻烦。
在Window系统上,我习惯使用xshell管理连接,非常方便。
在MacOS系统上,没有xshell,而一些类似xshell的工具中,好用的要收费,免费的不好用,于是决定使用iTerm2打造一个好用的ssh神器,提高日常工作效率。
话不多说,直接上干货。
使用iTerm2打造ssh神器,主要是通过Profiles功能,每个Profile对应一个ssh连接,然后打开Profile,就可以连接远程服务器。
具体如何配置Profile,详见下文。
配置Profile
1、新建一个Profile
打开iTerm2,导航到iTerm2 > Settings,然后打开配置管理页面:
在配置管理页面切换到Profiles管理页面:
点击“+“按钮,新建一个Profile:
新建的Profile如下图:
也可以从已有的Profile复制一个新的Profile,这样可以减少配置,复制方式如下:
更多功能,这里就不赘述了。
2、配置ssh连接
2.1、配置基本信息
配置ssh连接信息,如图:
Name区域是配置Profile名称。
Command区域选择Command选项,配置ssh连接命令即可。关于密码配置,下文会详细说明。
Tags区域是标签,多级标签使用“/”分割。当Profiles非常多时,通过标签筛选,可以更快的定位到目标Profile。
点击Tags按钮,可以查看标签树:
2.2、配置密码
配置完ssh连接后,每次打开Profile,都会直接执行ssh命令,连接远程服务器,然后要求人工输入密码。
如果想要自动填充密码,就需要使用Triggers。Triggers会监控终端seesion的输出文本,如果文本匹配到一个正则表达式,就会执行这个正则表达式对应的动作。
在Triggers中配置正则表达式匹配输入密码的提示文本,然后触发输入密码文本或者弹出密码管理器,就可以实现自动填充密码或者从密码管理器中选择密码的功能。
继续编辑Profile,打开高级配置:
编辑Triggers:
添加规则,自动输入密码:
上图规则的正则表达式“(P|p)ass(word|wd):”,可以匹配到输入密码的提示文本,然后触发动作“Send Text”,会将Paramters中配置的文本发送到终端session中,就实现了自动填充密码的功能。
Send Text 自动输入密码,需要在密码文本末尾添加回车符(\r)或者换行符(\n),这样就可以直接连接到远程服务,否则还需要手动按回车键,才能连接到远程服务器。
还可以选择触发密码管理器,手动选择账户密码,再连接到远程服务器,规则配置如下:
上图规则的正则表达式“(P|p)ass(word|wd):”,可以匹配到输入密码的提示文本,然后触发动作“Open Password Manager”,密码管理器打开后,默认选中的是Parameters中配置的账户密码。
触发效果如下:
可以看到默认选择的账户密码,点击 Enter Password 按钮,就可以将密码发送到终端session,连接到远程服务器。
触发规则中配置的默认账户密码,需要提前在密码管理器中创建。
创建方法如下。
打开密码管理器:
点击“+”按钮,编辑即可:
使用Profile
直接点击目标Profile即可,如图:
参考:
https://blog.csdn.net/ClownG/article/details/107849908
https://blog.josephziegler.com/2022/03/20/iterm2-password-trigger.html