我的 .ssh 文件夹中可以有多个 ssh 密钥吗?

我的 .ssh 文件夹中可以有多个 ssh 密钥吗?

我可以创建多个 ssh 密钥并将它们重命名为用户友好的名称吗,以便我知道哪个密钥适用于哪个网站等等。

这安全吗?

例如:

github_id_rsa
github_id_rsa.pub
..
...

连接时如何知道要检查哪个键?

现在在我的计算机上,当我查看known_hosts时,它们似乎都在主机名后面有相同的键???

答案1

是的,你可以拥有不同的 ssh 密钥。GitHub 帮助网站上有非常好的文档,网址为Help.GitHub - 多个 SSH 密钥。本质上,您将使用 ssh-add 添加额外的密钥,以便代理可以使用它们。然后设置 ssh 主机配置,以便在此处查找与不同域的任何 ssh 连接并使用适当的密钥。祝你好运!

答案2

您可以修改文件 ~/.ssh/config,以便为不同的服务器使用不同的身份文件。使用您喜欢的编辑器编辑 ~/.ssh/config,并添加适合您情况的条目,如下所示:

Host *
IdentityFile ~/.ssh/id_rsa

Host *.github.*
IdentityFile ~/.ssh/github_id.rsa

Host *.someother.com
IdentityFile ~/.ssh/someother_id.rsa

上面的第一部分设置了所有主机的默认值,其他部分覆盖了匹配模式的每个主机应该使用的默认值。如果每个主机都有不同的用户名,那么你可以添加一个用户键,然后输入遥控器上的用户名。

答案3

您可以为任何拥有多个用户帐户的站点设置多个 ssh 密钥

下面是我在开发中遵循的示例GitHub.com

配置文件示例(位于~/.ssh/config

#Personal account
 Host github.com-<personal-account-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_personal
 IdentitiesOnly yes



#Organization account
 Host github.com-<organization-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_work
 IdentitiesOnly yes

添加新原点时

对于个人账户

git remote add origin [email protected]<personal-account-name>:<personal-account-name>/<repo-name>.git

对于组织帐户

git remote add origin [email protected]<organization-name>:<organization-name>/<repo-name>.git

希望能帮助到你。

答案4

这对我有用

ssh-keygen -f ~/.ssh/<username> 
ssh-add ~/.ssh/<username>
git clone <username>@bitbucket.org:myfancyteam/myfancyproject.git

从 :https://support.atlassian.com/bitbucket-cloud/docs/set-up-additional-ssh-keys/

相关内容