使用 SSH config 简化 SSH 连接

如果你有很多的服务器要连接,如果对你来说记住那些服务器的地址、端口实在是一种痛苦,如果你一直在寻找一种能够简化在命令行下连接 SSH 服务器的办法,那么,本文将给你提供一种解决问题的思路,那就是,使用 SSH 的 config 文件。

SSH config 文件是什么

Open SSH 客户端配置文件,允许你以配置项的形式,记录各个服务器的连接信息,并允许你使用一个定义好的别名来代替其对应的 ssh 命令参数。

SSH config 文件该怎么用

创建 SSH config 文件

通常来说,该文件会出现在两个地方,一个是 /etc/ssh/ssh_config,一个是 ~/.ssh/config

/etc/ssh/ssh_config 文件通常用来定义全局范围上的 SSH 客户端参数,而 ~/.ssh/config 则被用来定义每个用户自己的 SSH 客户端的配置。我们将要修改的,就是位于用户目录下的 config 文件。

如果 ~/.ssh/config 文件不存在,那么也不用着急,这是正常的,只需要执行如下命令,即可新建一个空白的 config 文件

1
touch ~/.ssh/config

编写 config 条目

假如说,我们想连接到一台服务器,它的地址是 example.server.com,端口号是 2222,以用户 admin 登陆,并使用~/.ssh/id_rsa 这个私钥验证身份。那么,我们需要在命令行里输入:

1
ssh admin@example.server.com -p 2222 -i ~/.ssh/id_rsa

嗯好吧,-i 参数可以省略,但即使这样,命令还是很长,对吧?

那么我们把这个服务器的连接参数写到 config 文件里,就变成了这个样子:

1
2
3
4
5
6
7
# 此处我为了美观起见,给每个子条目都缩进了一层,实际使用时缩进不影响文件的效果。

Host sample
Hostname example.server.com
Port 2222
User admin
Identityfile ~/.ssh/id_rsa

嗯,在这里,它还有了一个新名字,叫 sample

然后,我们只需要:

1
ssh sample

就可以连接到这台主机了。

这玩意有意思,我还想了解更多!

好吧,为了满足你的好奇心,我这里为你提供了 3 篇博客供你参考。当然,这三篇博客也是我编写本文时的参考文档。

多个 SSH KEY 的管理

How To Configure Custom Connection Options for your SSH Client

Simplify Your Life With an SSH Config File

另外,您也可以阅读 ssh_config 的手册页,来获得最原始的信息,阅读该手册的命令是:

1
man ssh_config