如何才能对 user1@host 和 user2@host 使用不同的 ssh 密钥,而不使用别名主机名?

如何才能对 user1@host 和 user2@host 使用不同的 ssh 密钥,而不使用别名主机名?

我有一个远程 CentOS 服务器,我们假设它的名字是 hostname.com

hostname.com 有多个用户帐户,我想以其中任何一个用户的身份通过 ssh 进入该服务器(使用 ssh 密钥而不是密码)。

似乎每个人都建议只更改我的本地 ssh 配置,为每个远程用户添加一个服务器别名,然后为每个别名提供不同的 IdentityFile。

那么我ssh bob@aliased_hostname1必须ssh alice@aliased_hostname2

还有其他解决方案吗?我宁愿不通过 ssh 进入别名主机名

理想情况下,我只想根据我尝试登录的远程用户名自动选择正确的 ssh 密钥文件。ssh [email protected]ssh [email protected]

答案1

检查Match客户端计算机上 SSH 配置中的关键字。具体来说,userhost标准。ssh_config(5)手册页状态(重点是我的):

匹配条件使用一个或多个条件或者始终匹配的单个标记 all。

因此,就你的情况而言,你会看到类似这样的内容:

Match user bob host "hostname.com"
  IdentityFile /path/to/bob.key

Match user alice host "hostname.com"
  IdentityFile /path/to/alice.key

一个超级用户一个 Unix 和 Linux 问答这有助于将所有内容联系在一起,因此您可能也应该为这些参与者投票。

相关内容