是否可以在 SSH 中使用用户名别名?我想做的是使用 连接到我的服务器,并使用环境变量ssh site123@hostname
以用户名进行身份验证。site
SITEID=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