此问题并非重复。请在将其标记为重复之前先阅读。
是否可以为 Linux 服务器上的用户分配昵称或别名,然后使用昵称通过 SSH 进入服务器?我正在考虑为添加到.bashrc
或.bash_aliases
文件的各种命令添加别名,例如:
alias grep='grep --color=auto'
例如,如果有要求(业务规则)在服务器上设置用户的全名,例如,john_smith
而不仅仅是他们的名字(john
),但我们想要昵称john_smith
fruitloops
,我们希望 John 能够:
ssh john_smith@ip_address
也:
ssh fruitloops@ip_address
如果可以的话,用户和昵称之间的映射应该在哪里设置?用户是否fruitloops
也需要存在于服务器上?
这个问题是关于为用户设置别名,而不是主机。
答案1
Linux 中的每个用户只有一个名字,这是他唯一的名字。您可以为命令创建别名,但不能为用户创建别名。
但是您可以创建具有相同 UID、主目录和密码的第二个用户来帮助您。
答案2
我还没有尝试过,但除了将两个用户映射到一个 UID 之外,另一个选项(在我看来这似乎很危险,但这个选项可能同样危险)是让单个用户充当基于 SSH 密钥的重定向器。这就是使用 SSH 的源代码控制存储库通常的工作方式。
让我们称呼该用户me
。每个人都将使用这个别名。
ssh me@ip_address
现在,用户me
拥有了他们所有用户的公钥~/.ssh/authorized_keys
。
command="sudo -i -u user-mapped-to-key" ssh-rsa key
您需要让用户me
具有像其他用户一样使用 sudo 的能力,并且您需要管理me
授权密钥文件。
无论如何,我还没有测试过这个,但理论上这样的事情应该有效。