### 文章目录
- [@[toc]](#文章目录 @[toc] 检查 sshd 配置文件 查看 sshd 配置文件的默认值 方法一 方法二 修改 sshd 配置文件 重启 sshd 应用配置文件 题外扩展
~/.ssh/authorized_keys
中的from
条件sshd_config
中的Match Host
指令from
和Match Host
的区别和联系) - [检查 sshd 配置文件](#文章目录 @[toc] 检查 sshd 配置文件 查看 sshd 配置文件的默认值 方法一 方法二 修改 sshd 配置文件 重启 sshd 应用配置文件 题外扩展
~/.ssh/authorized_keys
中的from
条件sshd_config
中的Match Host
指令from
和Match Host
的区别和联系) - [查看 sshd 配置文件的默认值](#文章目录 @[toc] 检查 sshd 配置文件 查看 sshd 配置文件的默认值 方法一 方法二 修改 sshd 配置文件 重启 sshd 应用配置文件 题外扩展
~/.ssh/authorized_keys
中的from
条件sshd_config
中的Match Host
指令from
和Match Host
的区别和联系) - [方法一](#文章目录 @[toc] 检查 sshd 配置文件 查看 sshd 配置文件的默认值 方法一 方法二 修改 sshd 配置文件 重启 sshd 应用配置文件 题外扩展
~/.ssh/authorized_keys
中的from
条件sshd_config
中的Match Host
指令from
和Match Host
的区别和联系) - [方法二](#文章目录 @[toc] 检查 sshd 配置文件 查看 sshd 配置文件的默认值 方法一 方法二 修改 sshd 配置文件 重启 sshd 应用配置文件 题外扩展
~/.ssh/authorized_keys
中的from
条件sshd_config
中的Match Host
指令from
和Match Host
的区别和联系) - [修改 sshd 配置文件](#文章目录 @[toc] 检查 sshd 配置文件 查看 sshd 配置文件的默认值 方法一 方法二 修改 sshd 配置文件 重启 sshd 应用配置文件 题外扩展
~/.ssh/authorized_keys
中的from
条件sshd_config
中的Match Host
指令from
和Match Host
的区别和联系) - [重启 sshd 应用配置文件](#文章目录 @[toc] 检查 sshd 配置文件 查看 sshd 配置文件的默认值 方法一 方法二 修改 sshd 配置文件 重启 sshd 应用配置文件 题外扩展
~/.ssh/authorized_keys
中的from
条件sshd_config
中的Match Host
指令from
和Match Host
的区别和联系) - [题外扩展](#文章目录 @[toc] 检查 sshd 配置文件 查看 sshd 配置文件的默认值 方法一 方法二 修改 sshd 配置文件 重启 sshd 应用配置文件 题外扩展
~/.ssh/authorized_keys
中的from
条件sshd_config
中的Match Host
指令from
和Match Host
的区别和联系) - [`~/.ssh/authorized_keys` 中的 `from` 条件](#文章目录 @[toc] 检查 sshd 配置文件 查看 sshd 配置文件的默认值 方法一 方法二 修改 sshd 配置文件 重启 sshd 应用配置文件 题外扩展
~/.ssh/authorized_keys
中的from
条件sshd_config
中的Match Host
指令from
和Match Host
的区别和联系) - [`sshd_config` 中的 `Match Host` 指令](#文章目录 @[toc] 检查 sshd 配置文件 查看 sshd 配置文件的默认值 方法一 方法二 修改 sshd 配置文件 重启 sshd 应用配置文件 题外扩展
~/.ssh/authorized_keys
中的from
条件sshd_config
中的Match Host
指令from
和Match Host
的区别和联系) - [`from` 和 `Match Host` 的区别和联系](#文章目录 @[toc] 检查 sshd 配置文件 查看 sshd 配置文件的默认值 方法一 方法二 修改 sshd 配置文件 重启 sshd 应用配置文件 题外扩展
~/.ssh/authorized_keys
中的from
条件sshd_config
中的Match Host
指令from
和Match Host
的区别和联系)
检查 sshd 配置文件
一般,默认的
UseDNS
参数都是注释的
shell
grep UseDNS /etc/ssh/sshd_config
centos 一般默认是这样的,
openeuler 22.03 (LTS-SP4)
默认是no
#UseDNS yes
查看 sshd 配置文件的默认值
方法一
shell
man sshd_config | grep -A 5 UseDNS
- 指定 sshd(8)是否应查找远程主机名,并检查远程 IP 地址的解析主机名是否映射回相同的 IP 地址
- 默认值为 "yes"
- 如果该选项设置为
no
,那么在~/.ssh/authorized_keys
文件中的from
选项和sshd_config
文件中的Match Host
指令中只能使用地址,不能使用主机名。
UseDNS Specifies whether sshd(8) should look up the remote host name, and to check that the resolved host name for the remote IP address maps back to the very same IP address.
The default is "yes".
If this option is set to no then only addresses and not host names may be used in ~/.ssh/authorized_keys from and sshd_config Match Host directives.
方法二
这个方法是验证
sshd
当前的配置,如果修改了/etc/ssh/sshd_config
配置文件,下面的命令也会看到配置的更新
shell
sshd -T | grep usedns
centos 默认是 yes
usedns yes
修改 sshd 配置文件
在
/etc/ssh/sshd_config
文件内加入下面的内容,确保没有其他的UseDNS
是非注释状态
UseDNS no
重启 sshd 应用配置文件
shell
systemctl restart sshd
通过上面的
sshd -T | grep usedns
可以看到usedns
已经从 yes 变成了 no,再次 ssh 就快很多了
题外扩展
以下内容取自
chatgpt
,本人还未验证过
- 上面的配置文件提到过,如果
UseDNS
选项设置为no
,那么在~/.ssh/authorized_keys
文件中的from
选项和sshd_config
文件中的Match Host
指令中只能使用地址,不能使用主机名 - 这里扩展一下这两个的场景
~/.ssh/authorized_keys
中的 from
条件
from
条件用于限制某个公钥登录的客户端来源(IP 地址或主机名)。你可以在~/.ssh/authorized_keys
文件中,为每个公钥添加一个from
条件,指定只有从特定的 IP 地址或主机才能使用该公钥登录
-
语法格式
from="host1,host2" ssh-rsa AAAAB3... user@host
-
示例场景
-
限制访问到特定 IP 地址
:你希望只有从公司内部网或特定的 IP 地址才能通过公钥登录。通过from
限制,可以确保即使公钥泄露,也只能从指定的 IP 地址登录from="192.168.1.0/24" ssh-rsa AAAAB3... user@host
- 这条配置表示只有从
192.168.1.0/24
网段内的主机才能使用这个公钥登录
- 这条配置表示只有从
-
限制特定主机名
:如果UseDNS yes
,也可以使用主机名进行限制from="trustedhost.example.com" ssh-rsa AAAAB3... user@host
- 这里指定只有主机
trustedhost.example.com
能使用该公钥登录
- 这里指定只有主机
-
-
注意事项
- 当
UseDNS
设置为no
时,from
条件只能使用 IP 地址,不能使用主机名 - 如果 DNS 解析不可靠或延迟很高,建议使用 IP 地址来避免问题
- 当
sshd_config
中的 Match Host
指令
Match
指令可以根据多个条件(如客户端的主机名、IP 地址、用户等)对 SSH 配置进行精细控制。Match Host
是其中的一种条件,允许你根据客户端的主机名或 IP 地址为其应用特定的 SSH 设置
-
语法格式
Match Host pattern
<SSH 选项> -
示例场景
-
为特定主机应用不同的设置
:你可以根据不同的主机名或 IP 地址,对 SSH 配置进行细粒度的控制。例如,要求来自某个主机的连接只能使用密码认证,而来自其他主机的连接可以使用公钥认证Match Host 192.168.1.100 PasswordAuthentication yes Match Host * PasswordAuthentication no
- 在这个例子中,IP 为
192.168.1.100
的主机可以使用密码登录,而其他所有主机则必须使用公钥认证
- 在这个例子中,IP 为
-
限制特定主机只能通过特定用户登录
:你可以限制来自特定 IP 或主机名的登录只能使用特定用户Match Host 192.168.1.100 AllowUsers specialuser
- 这样,来自
192.168.1.100
的主机只能通过specialuser
登录
- 这样,来自
-
-
注意事项
- 和
from
一样,如果UseDNS
设置为no
,那么Match Host
只能使用 IP 地址,不能使用主机名 Match
指令必须放在sshd_config
文件的最后部分,因为它会根据条件覆盖前面的全局配置
- 和
from
和 Match Host
的区别和联系
-
使用层次
from
是针对特定公钥的约束,只作用于~/.ssh/authorized_keys
文件中的特定公钥。Match Host
是在全局 SSH 配置中控制客户端主机行为的指令,可以影响整个 SSH 配置文件的行为。
-
使用场景
from
更适合精细化控制单个用户的公钥访问,尤其是在多用户服务器上,只需配置某个用户的公钥。Match Host
更适合全局配置,比如为不同来源的主机或网段设置不同的安全策略。
-
总结
from 条件
允许你为每个公钥设置基于来源 IP 地址或主机名的限制,主要用于细粒度控制单个用户或公钥的来源Match Host 指令
则是服务器级别的配置,允许基于客户端的主机名或 IP 地址应用不同的 SSH 配置
-
在实际使用中,这两者可以结合使用,通过
from
限制单个公钥的登录来源,同时通过Match Host
在全局配置文件中对特定来源应用不同的 SSH 策略