一个用户有多个公钥

一个用户有多个公钥

这个问题类似于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工作机器上,并对家用机器上的主密钥执行相同操作。

然后,当您连接到家庭服务器时,使用其中一个密钥,而当您连接到工作服务器时,使用另一个密钥。

请注意,您可能希望将两个密钥都添加到您的密钥中,ssh-agent这样您就不必一直输入密码。

答案2

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

  • 备份
  • git (例如Push URL: git+ssh://git@git-server/~/repos/MyProject
  • 同步
  • 对应用程序的公共访问

至于拥有不同的主目录,您可以通过environment="HOME=/home/user1"在 authorized_keys 文件中为 user1 的密钥添加前缀来更改每个密钥。请参阅man authorized_keys

尝试一下,YMMV。

相关内容