我有一个远程 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 配置中的关键字。具体来说,user
和host
标准。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 问答这有助于将所有内容联系在一起,因此您可能也应该为这些参与者投票。