使用用户别名的SSH?


10

这个问题不是重复的。在将其标记为此类之前,请先阅读它。

是否可以在昵称和服务器上为Linux服务器上的用户分配昵称或别名?我正在考虑将别名添加到.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
使用主持人别名,您可以做ssh fruitloop
塔卡特(Takkat)'17

我的问题是关于为用户而不是主机设置别名。fruitloops指的是用户john_smith,而不是IP地址。
dw8547

1
我相信这些不是相同的问题... +1的问题;)
Ravexina

1
对不起我的误解-必须在客户端上设置SSH主机别名,但是您需要的是在服务器上设置的解决方案。撤回了我的密切投票。
塔卡特

1
我认为这可以通过某些PAM技巧实现(如果您使用的是PAM)。我也许可以沿这些路线找到一些旧的代码(如果我这样做,我会作为答案发布)。
Sumudu Fernando

Answers:


14

Linux中的每个用户只有一个名字,这是他唯一的名字。您可以为非用户的命令创建别名。

但是,您可以使用相同的UID,主目录和密码创建第二个用户,从而为您解决问题。


因此,/etc/passwd对应于这些用户的我的条目将看起来像:john_smith:x:1001:1001:,,,:/home/john_smith:/bin/bashfruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bash
dw8547

2
我试过3层不同的方法后,增加用户john_smith使用UID = 10011) adduser --home /home/john_smith --uid 1001 fruitloops,这不起作用(adduser失败,因为使用了userid)2) useradd --home /home/john_smith --non-unique --uid 1001 fruitloops,这确实起作用,但是导致了某些不良行为3)最后,我将行fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bash直接添加到/etc/passwd文件中,这与我之后的代码最接近。我以SSH ip_address身份fruitloops登录并/home/john_smith在到达时登陆。
dw8547

1
我要在这里用你的措词来打扰。在您的方案中,您已经创建了一个具有两个不同登录名的用户(1001)。您尚未在此处完成操作,但没有理由这两个名称不能具有不同的主目录和登录Shell。以“ fruitloops”身份登录并创建一个文件。现在检查目录,您将看到john_smith被显示为文件的所有者,因为这是在uid 1001的/ etc / passwd中找到的名字。我们可以争论一下john_smith是名称,fruitloops是别名还是john_smith是主要名称,水果循环是次要名称,但这是语义。
蒙迪·哈德

2
“您可以使用相同的UID,主目录和密码创建第二个用户” –听起来像是一个骇人听闻的骇客,它不能保证在兼容POSIX的不同实现中都能正常工作。POSIX要求用户名和用户ID之间的关系是双向不同的。
大卫·佛斯特

@ dw8547您能否从useradd命令中进一步解释有关不良行为的更多信息?
蒙蒂·哈德

0

我没有尝试过,但是除了映射到单个UID的两个用户(IMO看起来很危险,但是这个选项可能同样危险)之外,另一个选项是让单个用户充当基于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授权密钥文件。

无论如何,我还没有测试过,但是从理论上讲,这样的东西应该可以工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.