一个用户的多个公钥

Rus*_*ell 66 ssh public-key

这个问题类似于SSH公钥认证——一个公钥可以供多个用户使用吗?但情况正好相反。

我正在尝试使用 ssh,因此任何 ssh 服务器都可以为您提供答案。

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

如果我不清楚,请告诉我。

谢谢。

Phi*_*ack 97

您可以根据需要拥有任意数量的密钥。无论如何,为不同领域使用单独的私钥/公钥集是一种很好的做法,例如一组供您个人使用,一组用于您的工作等。

首先,生成两个单独的密钥对,一个用于家庭,一个用于工作:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work
Run Code Online (Sandbox Code Playgroud)

接下来,在您的~/.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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 绝对地!在服务器端,ssh 将检查authorized_keys 文件中的所有公钥,直到找到匹配项。所以你可以把所有的密钥放在服务器上的同一个 authorized_keys 文件中,没问题。 (2认同)

Mik*_*eyB 5

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

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

至于有不同的homedirs,您可以通过environment="HOME=/home/user1"在authorized_keys 文件中预先添加user1 的密钥来更改每个密钥。见man authorized_keys

试试看,YMMV。