SSH用户名别名

有可能使用用户名别名与SSH? 我想要做的就是使用ssh site123@hostname连接到我的服务器,并通过环境variablesSITEID=123获得身份validation作为用户名site

我可以编写一些脚本,我只需要知道我在哪里拦截SSHauthentication过程。

编辑:

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

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

不速之客:不。

经过一些考虑:这将取决于你的环境和你想要达到的目标。

文件系统和许多操作系统只关心UID / GID号码,你可以有一个多对一的映射,用户名'site123'可以和用户的'site'和同一个主目录。

你可能也想看看pam_env。

您可以在[email protected]authorized_keys文件的开头添加一个command="ssh [email protected]" 。 如果该用户有正确的凭据,它应该让你通过到另一端。

编辑:

如果需要,您也可以在同一命令中设置SITEID=123

您可以将环境variables发送到服务器,但服务器必须configuration为接受这些variables:

服务器#grep SITEID / etc / ssh / sshd_config
 AcceptEnv SITEID

然后,在客户端上:

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

但是,请记住,任何人(能够login)都可以将SITEID设置为任何他们喜欢的东西。

更简单更简单的方法是创build一个重复的用户,例如:

编辑下面的文件和复制站点用户名,只是修改从site部分到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编辑site用户的.bashrc文件并添加:

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

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

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

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