小编hod*_*hle的帖子

在 SSH 配置中同时匹配用户和主机

因此,我管理着一堆机器,我为每台机器都设置了别名以便于访问。

对于 ssh 客户端配置中的每个人来说,这看起来像这样:

Host MACHINE-1075 M1075 m1075 1075
    User service
    HostName 10.0.100.75
Run Code Online (Sandbox Code Playgroud)

并且:

Match User service
    IdentityFile ~/.ssh/service_user
Run Code Online (Sandbox Code Playgroud)

这使我只需键入即可ssh 1075自动使用正确的身份文件和用户进入该机器。

这对于正常访问来说效果很好。然而,有时我可能需要以 root 身份登录来执行某些任务。我可以通过显式指定身份文件来完成此操作,例如ssh root@1075 -i ~/.ssh/root_user.

这没问题,但我真正想做的是配置 SSH 以从用户和主机的组合中找出所需的身份文件,从而允许我键入ssh root@1075并执行正确的操作。我知道我可以匹配 root 用户的所有使用并将其链接到一个身份文件:

Match User root
    IdentityFile ~/.ssh/root_user
Run Code Online (Sandbox Code Playgroud)

然而,这不适用于我的情况,因为有几组机器可能需要不同的根访问凭据,因此并非所有机器都应该匹配。理想情况下,我想做的是:

Match Host 10.0.100.75 && Match User root
    IdentityFile ~/.ssh/root_user
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。作为临时解决方案,我只是简单地为机器添加别名root-作为前缀,这样我就可以这样做ssh root-1075,这还不错,但它并不完全是我想要的。

这是在运行 OpenSSH 8.4 的 Ubuntu 21.10 上进行的。

ssh configuration openssh

15
推荐指数
1
解决办法
7097
查看次数

标签 统计

configuration ×1

openssh ×1

ssh ×1