如何使用per-host的SSH配置 提升效率
Secure Shell (SSH)有很多使用技巧。有了大量的配置功能,您可以让SSH守护进程和客户机执行您需要的任何操作。大多数用户使用sshd_config和ssh_config文件完成SSH配置。但是,还有另一个配置文件使该工具更具灵活性。
该配置文件是~/.ssh/config。在该文件中,可以根据主机配置SSH。这意味着您可以配置不同的主机来执行不同的操作。
例如,如果您想设置一个特定的主机,并且启用了用户名、SSH密钥、批处理模式(这告诉SSH永远不要请求口令或密码),并且禁用了转义序列(这可以避免在传输任意数据时出现问题)。假设另一个配置将为特定域或IP地址方案上的任何主机使用特定用户。通过SSH配置文件,可以完成这些工作。
准备工作:安装了SSH的Linux服务器,任意数量的允许SSH连接的远程计算机
如何配置主机
我们将使用我前面准备的服务器实例。
我们的第一个主机:
设置一个用户名
指定SSH密钥
启用批处理模式
禁用转义序列
第二个主机将:
设定使用者名称
为特定网络上的所有主机启用用户名
要编辑必要的配置文件,请发出命令:
nano ~/.ssh/config
如果这是您首次配置SSH主机,则此文件为空。我们的第一个条目将如下所示:
Host Debian
HostName 10.34.1.40
User jack
IdentityFile ~/.ssh/id_rsa.pub
BatchMode yes
EscapeChar none
您可以根据自己的喜好为主机命名。在我的情况下,这是一台Debian服务器,因此Debian的名称是apropos。确保将HostName设置为远程服务器的IP地址或域,并将User设置为要使用的远程用户名。
保存并关闭文件。
由于我们将其设置为不要求输入密码或密码,因此需要设置SSH密钥身份验证。要将SSH密钥复制到远程服务器,请发出以下命令:
ssh-copy-id USERNAME@SERVER_IP
其中USERNAME是远程用户,而SERVER_IP是远程服务器的IP地址。
一旦完成了SSH密钥认证,就可以使用以下命令将SSH SSH到Debian主机中:
ssh Debian
系统不会要求您提供地址或密码。
接下来,让我们配置一个用户名,以在给定网络上的任何计算机上使用。假设用户名是jack,网络地址方案是192.168.1.0。该配置(同样在.ssh / config文件中)将是:
Host 192.168.1.*
User jack
保存并关闭文件。
当您想通过SSH连接到该网络上的任何计算机(使用默认用户名jack)时,只需发出以下命令:
ssh SERVER_IP
其中SERVER_IP是远程服务器的IP地址。只要登录服务器的IP是192.168.1.*,就不会要求输入用户名。
这是设置每个主机SSH配置的基础。您可以通过发出以下命令来了解有关这种类型设置的更多信息:
man ssh_config
通过使用此设置,不仅可以简化SSH的使用,而且可以提高效率。