开发效率神器之alfred集成ssh+iTerm2实现一步登录服务器

10,349

前言

做事情,好的开始是成功的一半。干开发,好的工具等于完成了一半。

实际工作中,在没有使用"alfred+ssh+iterm"以前,连接各个环境的机器时,每次要

1. 打开终端
2. ssh root@ip
3. 输入密码
4. ps -ef|grep server // 找到log dir
5. cd log dir // 目标目录
6. bala bala 看日志

即,在你真正开始看日志找问题时,至少要经过5个步骤。不经意间,10min过去了,问题还没开始找呢

在alfred+ssh+iterm的协助下,快感油然而生。你只需要"随便"一个动作(如下图), 直接进入第六步。

下面我们就具体说下如何实现这个极大提升效率和倍爽的操作。

免密登录

先来个小菜,免密码登录机器。 前提:默认你的mac已经安装了iTerm2 场景: 平时,我们要连接远程服务器,步骤如下:

1. 打开iTerm2
2. ssh root@50.100.11.10
3. 输入密码

实际工作中有多个远程服务器,需要连接。每个都要如上操作一遍,实在繁琐。尤其是复杂密码的时候

使用ssh config

实现密码登录的方法是通过opensshssh config的功能。具体操作为~/.ssh/config,如果不存在,可以新建一个 然后vim ~/.ssh/config

Host aliyun
  HostName 50.100.11.10
  User root
  Port 22

保存退出。这时在iTerm2中就可以输入ssh aliyun,回车 然后输入密码。注意,这时候已经不用输入ssh root@50.100.11.10,只要输入密码就登录上了

设置免密登录

方法是使用ssh-copy-id功能,原理是将本机的密钥复制到远程要连接的机器上,从而授权连接。iterm终端输入:

  • (可选)如果你的机器没有生成过ssh密钥则输入,如果已经存在,则忽略这步

$ ssh-keygen

  • 复制密钥到远程目的服务器

$ ssh-copy-id -i demouser@192.168.1.101

按提示输入一次密码,ssh-copy-id就会自动将刚才生成的公钥id_rsa.pub追加到远程主机的~/.ssh/authorized_keys后面了,这样以后的 ssh 连接都不用输入密码了。

  • 设置后,连接试试看看效果

$ ssh aliyun

你会发现可以一步命令直接等上远程服务器了。但是还是要打开终端iTerm2。再方便一点的登录远程服务器就需要alfred了

安装alfred

alfred是mac提高工作效率软件排名第一位,可见其欢迎程度。大有一旦遇见,终生想念的情愫。alfred安装非常简单,不多说了,但是免费版比较难找,发挥你的search能力吧。

下面要说的是alfred的插件。关于ssh的一款插件:alfred-ssh。对这个插件爱不释手形容不为过,下面说下具体使用场景和配置

到目前为止,你会发现没有用到alfred,已经实现在iTerm2上一步搞定了。是的,但是我们通过alfred,可以用更简便的方式来连接远程服务器

安装alfred-ssh插件

连接如下:github.com/deanishe/al… 下载最新版:Secure-SHell-0.8.0.alfredworkflow,双击自动添加到alfred的workflow页,效果如下图

24-08

此时alfred-ssh就引入到alfred了,这时候你就可以使用alfred来打开远程服务器了,输入ssh aliyun,你会发现终端连接上了aliyun,够爽吧。但你会发现,这个终端显示的mac自带的终端,而我们早已喜欢上了iTerm2,iTerm2比mac自带的终端好用的多。

安装alfred集成Iterm2配置

所以如果想使用Iterm2作为终端,需要接着配置。如下图,打开iTerm2的设置

25-19
从图中可以看到,需要两步操作

  1. install iTerm2 plugin for Alfred
  2. 配置iterm的Url Schemes

首先我们到Alfred的Features页面,具体为Alfred Preferences → Features → Terminal/Shell 将Application的值改为Custom,如下图

26-03

同时显示出一个大输入框,这个需要输入一段代码,而代码的来源见下图

26-51

安装alfred插件custom-iterm-applescripts-for-alfred

点击iTerm2 plugin for Alfred,这是一个牛人写的custom applescript,根据你的iterm版本选择applescript命令,如下图

27-20

我的iTerm2的版本是Build 3.2.9,所以我选择For 3.1.1的命令,选中复制curl ... ,粘贴到iTerm2中回车,如下图

27-48

粘贴它到上文的大输入框中,即Alfred的配置中:Alfred Preferences → Features → Terminal/Shell → Application → Custom

itermURL Schemes配置

preferences → Profiles → PROFILE_NAME → General → URL Schemes,选择ssh,这样设置默认为ssh激活状态

到此就全部配置完成了

爽不爽

验收效果

28-13

回车

28-36

可以看到,最终的效果是只需要在alfred中输入一个命令:ssh aliyun,就直接连接上了aliyun的远程服务器了,一步搞定。到这里,我们的目标就实现了。

进阶

实际工作中,线上机器都是要通过堡垒机才能访问的,首先要获取验证码,还有口令,步骤比较麻烦。这时,神器还在发挥威力,还是一步搞定:现在,需要借助另一个神器:tmuxtmux结合alfred,无敌模式。tmux使用参见:远程终端神器-tmux

版权所属mxr_it@163.com,skyler_11@163.com,转载经标明原作链接

原味地址:开发效率神提升之alfred集成ssh+iterm