有可能使用用户名别名与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