使用 ssh_config 简化你的生活
当我们使用多个系统时,不可或缺的工具就是 ssh,这是我们都知道的。 使用 ssh,您可以登录到其他(远程)系统,就像坐在它们前面一样使用它们。 即使您的一些系统位于防火墙后面,您仍然可以使用 ssh 访问它们,但到达那里可能最终需要许多命令行选项,并且您拥有的系统越多,记住它们就越困难。 但是,您不必记住它们,至少不必记住多次:您可以将它们输入到 ssh 的配置文件中即可。
例如,假设您有两个经常连接的“服务器”,一个在家里的防火墙后面。 此外,假设您使用 dyndns 来告知您的家庭 IP 地址,并且您已将 ssh 侦听在端口 12022 上,而不是默认端口 22(并且您已将防火墙将该端口转发到服务器)。 因此要连接,您需要运行
$ ssh -p 12022 example.dyndns.org
第二个系统,假设是本地的,您只需连接
$ ssh 192.168.1.15
第二个输入起来还不太糟糕,但一个名称会更容易。 你可以将名称放入你的/etc/hosts文件中,或者您可以设置本地 DNS 服务器,但您也可以使用 ssh 的配置文件来解决此问题。
要创建 ssh 配置文件,请执行以下命令
$ touch ~/.ssh/config
$ chmod 600 ~/.ssh/config
现在使用您喜欢的文本编辑器编辑该文件,然后输入以下内容
Host server1
HostName example.dyndns.org
Port 12022
Host server2
HostName 192.168.1.15
这个Host选项启动一个新的“节”:所有后续选项都适用于该主机,直到看到新的“Host”选项。“HostName”选项指定 ssh 尝试连接的“真实”主机名(否则使用“Host”值)。“Port”显然是 ssh 尝试连接的端口,如果您不指定端口,则使用默认端口。
现在你可以更简单地连接了
$ ssh server1
$ ssh server2
这些只是您可以在 ssh 配置文件中设置的几个选项。 例如,您还可以指定启用 X11 转发。 您可以设置本地和远程端口转发(即 ssh 的-L和-R命令行选项)。 查看手册页(man ssh_config)以获取有关可用选项的更多信息。
使用 ssh 配置文件的一个额外好处是,scp、rsync 和 rdiff-backup 等程序也会自动获取这些选项,并且像您期望(希望)的那样工作。