如何在 ssh_config 中使用正则表达式作为主机名?

如何在 ssh_config 中使用正则表达式作为主机名?

因此,我的本地地址在局域网上不断变化。无法更改 dhcp 设置。地址都类似:192.168.Ax、192.168.Ay、192.168.Az 当我关闭 dhcp 服务器时,下次它会给出 192.168.Bx、192.168.By、192.168.Bz 它保持 x、y 和 z 不变。

因此,我尝试像这样编辑 ~/.ssh/config

Host pc1
           HostName pc.local
           User xx
           Port 22

Host pc2
           HostName "192.168.???.n1"
           User xx
           Port 22

Host pc3
           HostName "192.168.*.n2"
           User xx
           Port 22

调用ssh pc1可以正常工作。使用ssh 192.168.A.x完整地址也可以。但是,调用ssh pc2会出错could not resolve hostname 192.168.???.n1

答案1

在 ssh_config 中无法使用正则表达式作为主机名,但你可以使用本地域名,就像你在 PC1 中所做的那样

Host pc1
           HostName pc.local
           User xx
           Port 22

Host pc2
           HostName pc2.local
           User xx
           Port 22

Host pc3
           HostName pc3.local
           User xx
           Port 22

使用主机名,您永远不需要知道 IP。然后您可以 ssh 到主机名

ssh pc.local

答案2

不,你不能。特别是在这种情况下。ssh 客户端如何“猜测”你想要连接的 IP?

设置适当的 DHCP 服务器或在您的服务器上配置静态 IP。

相关内容