这个问题类似于SSH公钥身份验证-一个公钥可以用于多个用户吗?但这是另一回事。

我正在尝试使用ssh,因此任何ssh服务器都可以满足您的答案。

我可以有多个公共密钥链接到同一个用户?这样做有什么好处?另外,是否可以为使用的不同键设置不同的主目录(所有键都链接到同一用户)?

如果不清楚,请让我知道。

谢谢。

#1 楼

您可以根据需要拥有任意数量的键。无论如何,对不同领域使用单独的私钥/公钥集是一个好习惯,例如一套供您个人使用,一套供您的工作使用,等等。一个工作:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work


接下来,在您的~/.ssh/config文件中添加一个条目,以根据您连接到的服务器选择要使用的密钥: />
Host home
Hostname home.example.com
IdentityFile ~/.ssh/id_rsa.home
User <your home acct>

Host work
Hostname work.example.com
IdentityFile ~/.ssh/id_rsa.work
User <your work acct>


接下来,将id_rsa.work.pub的内容附加到工作机上的~/.ssh/authorized_keys中,并对家用机上的home键执行相同操作。

然后当您连接到家庭服务器时,您需要使用其中一个键,而工作服务器中则需要使用另一个键。时间。

评论


即使将id_rsa.work.pub和id_rsa.home.pub种植在同一台服务器上也可以,对吗?原因是我可能要从不同的计算机连接到服务器,所以我想知道,即使每台计算机以相同的用户身份连接到服务器,为每台计算机使用不同的密钥对是否有意义。谢谢。

–罗素
2011年1月12日在21:48

绝对!在服务器端,ssh将检查authorized_keys文件中的所有公钥,直到找到匹配项。因此,您可以将所有密钥放在服务器上相同的authorized_keys文件中。

– Phil Hollenback
2011年1月12日在21:54

@PhilHollenback“ ssh将检查authorized_keys文件中的所有公共密钥,直到找到匹配项为止” –您的意思是它一直向每个客户机发送挑战,直到客户机证明它可以解密一个公共密钥?您对此有任何参考吗? (真正感兴趣)

–aaa90210
18年4月2日在23:08

#2 楼

将多个用户的密钥分配给一个用户是很有意义的。常见原因有:


备份
git(例如Push URL: git+ssh://git@git-server/~/repos/MyProject
rsync
对应用程序的常见访问

由于具有不同的homedirs,您可以通过在environment="HOME=/home/user1"前面添加authorized_keys文件中的user1密钥来更改它们。请参阅man authorized_keys

,尝试一下,YMMV。