我可以创建多个 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/