![ssh_config:添加即使通过主机名连接时也匹配 IP 的主机部分](https://linux22.com/image/82966/ssh_config%EF%BC%9A%E6%B7%BB%E5%8A%A0%E5%8D%B3%E4%BD%BF%E9%80%9A%E8%BF%87%E4%B8%BB%E6%9C%BA%E5%90%8D%E8%BF%9E%E6%8E%A5%E6%97%B6%E4%B9%9F%E5%8C%B9%E9%85%8D%20IP%20%E7%9A%84%E4%B8%BB%E6%9C%BA%E9%83%A8%E5%88%86.png)
我希望 ssh 配置中有一个与任何本地 IP 匹配的主机部分:
Host 10.* 192.168.*.* 172.31.* 172.30.* 172.2?.* 172.1?.*
setting
setting
...
只要我直接连接到相关 IP,这就有效。但是,如果我连接到的主机名稍后解析为这些 IP 之一,则该部分将被忽略。
sshd 有匹配地址我认为可以用于此目的的部分,但它们在 ssh 客户端配置中不起作用。
有什么办法可以实现这一点吗?
答案1
您不能仅使用ssh_config
选项来做到这一点,但有exec
一个选项可以为您做到这一点:
Match exec "getent hosts %h | grep -qE '^(192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\.)'"
setting