这个问题类似于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。