SSH 用户名别名

SSH 用户名别名

是否可以在 SSH 中使用用户名别名?我想做的是使用 连接到我的服务器,并使用环境变量ssh site123@hostname以用户名进行身份验证。siteSITEID=123

我可以编写一些脚本,我只需要知道在哪里拦截 SSH 身份验证过程。

编辑:

我正在尝试实现一个“ssh 路由器”。一个开发人员将ssh projectname@host,然后他将被重定向到正确的环境。在这种情况下,我不需要关心文件系统和 UID/GID,因为我只会将用户重定向到正确的机器(使用正确的用户名)。

如果我,这会将用户重定向到(内部主机!)。我已经这样做了,但我必须为每个项目创建一个用户,然后使用正确的命令设置authorized_keys。ssh [email protected][email protected]

答案1

随口说:没有。

经过进一步的考虑:这取决于您的环境以及您想要实现的目标。

文件系统和大部分操作系统仅关心 UID/GID 号码,您可以在此进行多对一映射,用户名“site123”可以具有与用户“site”相同的 UID 以及相同的主目录。

您可能也想研究一下 pam_env。

答案2

您可以将环境变量发送到服务器,但服务器必须配置为接受这些变量:

服务器# grep SITEID /etc/ssh/sshd_config
AcceptEnv 网站ID

然后,在客户端上:

客户端$ SITEID = 123 ssh -o SendEnv =“SITEID”用户@服务器
服务器$ echo $SITEID
123

但是,请记住,任何人(能够登录)都可以设置SITEID他们喜欢的任何内容。

答案3

您可以在开头添加command="ssh [email protected]"[电子邮件保护]authorized_keys文件。如果该用户拥有正确的凭证,它应该会让你到达另一端。

编辑:

如果需要,您也可以设置SITEID=123相同的命令。

答案4

我认为一个更简单、更简单的方法是创建一个重复的用户,例如:

编辑以下文件并复制站点用户名并修改部分site内容site123

/etc/passwd
    site:x:500:500:Site User:/home/site:/bin/bash
    site123:x:500:500:Site User:/home/site:/bin/bash

/etc/shadow
    site:$6$2.ZZMqBj$kFO1qi1UqGh4y3wcSDcEM5IoCMlljdZggqZ3ZUMvXaKu6J8VzgwobKC3q1Lx8CYsHZeGEJU7d9DreHSPdTh0I.:16072::::::
    site123:$6$2.ZZMqBj$kFO1qi1UqGh4y3wcSDcEM5IoCMlljdZggqZ3ZUMvXaKu6J8VzgwobKC3q1Lx8CYsHZeGEJU7d9DreHSPdTh0I.:16072::::::

设置$SITEID编辑.bashrc用户的文件site并添加:

SITEID=$(who am i | awk '{print $1}')
  • ELSE

如果使用 ssh 密钥文件,您可以采取的另一种方法是让每个人都以用户身份登录site ,但使用自己的密钥,然后在authorized_keys文件中将以下内容添加到每个不同密钥行的开头:

environment="SITEID=site123" ssh-rsa AAAAB3NzaC
environment="SITEID=site111" ssh-rsa AAAAJ2Oqka

这样他们仍然会有不同的站点 ID

相关内容