前言
做事情,好的开始是成功的一半。干开发,好的工具等于完成了一半。
实际工作中,在没有使用”alfred+ssh+iterm”以前,连接各个环境的机器时,每次要1
2
3
4
5
61. 打开终端
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
2
31. 打开iTerm2
2. ssh root@50.100.11.10
3. 输入密码
实际工作中有多个远程服务器,需要连接。每个都要如上操作一遍,实在繁琐。尤其是复杂密码的时候
使用ssh config
实现密码登录的方法是通过openssh
的ssh config
的功能。具体操作为~/.ssh/config,如果不存在,可以新建一个
然后vim ~/.ssh/config
1
2
3
4Host 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
插件
连接如下:https://github.com/deanishe/alfred-ssh 下载最新版:Secure-SHell-0.8.0.alfredworkflow,双击自动添加到alfred的workflow页,效果如下图
此时alfred-ssh就引入到alfred了,这时候你就可以使用alfred来打开远程服务器了,输入ssh aliyun
,你会发现终端连接上了aliyun,够爽吧。但你会发现,这个终端显示的mac自带的终端,而我们早已喜欢上了Iterm2。
安装alfred集成Iterm2配置
所以如果想使用Iterm2作为终端,需要接着配置,如下图
从图中可以看到,有两步操作
- install iTerm2 plugin for Alfred
- 配置iterm的Url Schemes
首先我们到Alfred的Features页面,具体为Alfred Preferences → Features → Terminal/Shell
将Application的值改为Custom,如下图
同时显示出一个大输入框,这个输入需要输入一段代码,而代码的来源见下图
安装alfred插件custom-iterm-applescripts-for-alfred
点击iTerm2 plugin for Alfred,这是一个牛人写的custom applescript,根据你的iterm版本选择applescript命令,如下图
我的iterm2的版本是Build 3.2.9,所以我选择For 3.1.1
的命令,选中复制curl … ,粘贴到iterm中回车,如下图
粘贴它到上文的大输入框中,即Alfred的配置中:Alfred Preferences → Features → Terminal/Shell → Application → Custom
itermURL Schemes配置
preferences → Profiles → PROFILE_NAME → General → URL Schemes
,选择ssh,这样设置默认为ssh激活状态
到此就全部配置完成了
爽不爽
验收效果
回车
可以看到,最终的效果是只需要在alfred中输入一个命令:ssh aliyun
,就直接连接上了aliyun的远程服务器了,一步搞定。到这里,我们的目标就实现了。
进阶
实际工作中,线上机器都是要通过堡垒机才能访问的,首先要获取验证码,还有口令,步骤比较麻烦。这时,神器还在发挥威力,还是一步搞定:现在,需要借助另一个神器:tmux
,tmux
结合alfred
,无敌模式。tmux使用参见:远程终端神器-tmux
版权所属mxr_it@163.com,skyler_11@163.com,转载经标明原作链接