前言
对于服务端工作同学ssh是最基本的生存环境。在windows环境中,大家会用的最多的终端APP就是SecureCRT、putty。的确都是神器,各有优劣,此处就不多说了。
最近很多同学切换到了MAC上工作,对于终端的选择就更多了。什么XShell、ShellCraft、SecureCRT……非常的多,这些都不在讨论范围。其实MAC原生Terminal也非常好,样子好看,兼容性强。一个大不足,无法快速登录ssh。今天LZ带你走一圈原生Terminal的SSH快速登录。
一、安装sshpass
ssh本身是无法直接输入密码参数的,必须2次手动输入。如下图

为了直接命令登录,我们需要使用sshpass。如下图

至于sshpass的安装方式,大家自己度娘,篇幅有限,就不谈了。
1 | sshpass -p password ssh -p port user@address |
至此我们已经可以一条命令登录了。
注意,第一次登录服务器的时候,sshpass会失败。请使用ssh先登录一次,把那个二次确认同意掉,以后就能直接sshpass了。

二、配置ssh config
其实Mac下ssh是可以快速登录的,除了密码,都是可以免输入。
在~/.ssh/config里配置服务器信息即可,如果没找到,新建该文件。文件中配置Host、Hostname、Port、User,如下:

配置之后,我们的登录命令可以简化:
1 | ssh t1 |

结合之前的sshpass,我们可以直接登录
1 | sshpass -p password ssh t1 |
三、增加密码配置
经过前面的介绍,我们知道了ssh的配置,也知道sshpass可以快速登录。那么我们做一些小改动,使我们达到如下目的。
1 | sshp t1 |

好了,介绍下思路。
- 在配置文件中增加密码(原生ssh并不能解析)
- 做个sshp脚本,读取配置中的密码并使用
sshpass快速登录。
配置,我还是放在了~/.ssh/config中

sshp如下
1 | #!/bin/bash |
后话
其实在其他App面前,这个登录方式有点烦,而且不是非常简单,都是命令登录,还要记得Host。但是这种方式有非常好的兼容性,任何支持local的终端都可以使用。LZ在平时工作中有很多的终端操作,所以临时登录下服务器也很快,不用额外打开一个APP了。