![将远程 ssh 用户映射到不同的本地用户](https://linux22.com/image/542033/%E5%B0%86%E8%BF%9C%E7%A8%8B%20ssh%20%E7%94%A8%E6%88%B7%E6%98%A0%E5%B0%84%E5%88%B0%E4%B8%8D%E5%90%8C%E7%9A%84%E6%9C%AC%E5%9C%B0%E7%94%A8%E6%88%B7.png)
我所有的机器都有相同的用户名,除了一台旧机器,我不愿意尝试更改它。每当我 ssh 到机器时,我都会忘记指定我的用户名,我的密码被拒绝。这只需要 30 秒,但应该只需要 3 秒,所以这是一个 PIA。
有什么方法可以配置该机器以识别传入的用户名并将其映射到另一个正确的用户名?
如果可能的话,我真的很想在服务器上配置它。配置每个客户端不太理想,特别是因为我很喜欢摆弄各种安装和虚拟机。
答案1
在你的~/.ssh/config
:
host otherhostname
user otherusername
otherusername
那么当你的时候它就会用到$ ssh otherhostname
。
答案2
您可以在目标服务器上添加另一个具有所需用户名的帐户,然后编辑/etc/passwd
并将 UID 更改为原始帐户的 UID。这样,同一个帐户将有两个用户名。
我不确定它是否会引起任何问题,因为我想它在某些地方违反了某些规范,但我之前在服务器迁移期间曾暂时这样做过,并没有遇到任何问题。
大多数将 UID 映射回用户名的程序似乎都会选择第一个条目,/etc/passwd
因此重新排序行应该可以控制您在ls
目录列表等内容中看到的用户名(以防您宁愿看到新的用户名但让旧用户名继续工作)。
您只会在检查用户名与字符串时遇到问题。例如,您可以这样做来为帐户创建别名,但随后您可能会遇到返回其他内容的root
情况,例如,这可能会导致应用程序中止,声称您必须是 root 用户才能继续,即使您实际上是 root 用户。sudo whoami
root