在 Windows 的时候,我一度非常喜欢使用诸如 XShell 之类的软件,主要原因是我可以将不同的服务器信息保持在同一个软件当中,不用每次都手动保存(Putty往往就无法保存)。
而到了 macOS 之后,我不再使用 XShell 这样的软件来完成我的 SSH 工作流(事实上我也找不到类似 XShell 的软件,后来在 Setapp 软件包中发现了 Core Shell,但我已经有了下面的技巧了,就没再用)。
经过一番研究,我发现对于我的诉求来说,其实完全没必要使用一款第三方软件来完成,SSH 自带的功能即可完成。
再次 Review 一下我的诉求:
- 我希望不要输入 IP 地址,而是输入一个短语,或者是域名来连接我的服务器。
- 我希望能够支持自定义端口,因为我一般会把我的服务器端口从 22 改为一个随机的数字。
- 我希望可以指定密钥文件,因为我有多个密钥,不通的场景可能使用不同的密钥。
这些诉求如今我的新方法都可以实现。
SSH 支持自定义 Config 文件,而默认的 Config 文件位于 ~/.ssh/config
这个文件中,你可以在其中添加自己的配置来实现自定义 SSH。
比如这里用到的就是 SSH Config 中的 Host 定义,你可以以如下的规则来定义一个新的配置。
Host 主机名
User 登录用的用户名
HostName 登录用的主机名,可以是域名或者IP
Port 登录用的端口号
IdentityFile 需要使用的密钥文件
比如下图就是一个配置的例子
通过在你的 Config 文件当中添加对应的定义,你就可以用 ssh 主机名
的方式来连接你的服务器了。
比如,我的树莓派的配置的主机名是 pi
那我就可以使用 ssh pi
的方式来连接到我的树莓派当中。
明白了,有点方便。如果某一些是通用的,就可以不写,比如Port是22,IdentityFile默认在~/.ssh/id_rsa.pub的话,就可以少写。终端远比打开一个XShell要来得顺手
yes