如何处理多个 ssh 密钥
Posted
技术标签:
【中文标题】如何处理多个 ssh 密钥【英文标题】:How to handle multiple ssh-keys 【发布时间】:2021-11-03 16:15:39 【问题描述】:我在两个 github 帐户中为不同的项目创建了两个 ssh 密钥。一个是我的帐户,另一个是公司帐户 github。 我从事具有不同 ssh-key 的项目。所以每次我打开不同的项目时,我都会输入这个命令。
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa_my_git
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa_company_git
我希望通过将配置文件添加到项目或电脑或使用其他方式来避免每次都输入此内容。
【问题讨论】:
***.com/a/40333362/7976758 发现于***.com/search?q=%5Bssh%5D+automatically+add+keys 【参考方案1】:您只需运行这三个命令中的每一个;您可以将它们放在您拥有的任何登录 shell 配置文件中(例如,.bash_profile
)。
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa_my_git
ssh-add ~/.ssh/id_rsa_company_git
现在,当您使用 git
时,ssh
将简单地尝试它在代理中找到的 any 键,直到找到一个有效的键。
这很好,只要您没有太多的键可以尝试,以至于在 X 次尝试失败后远程端不会阻止您,然后您才能尝试正确的键。在这种情况下,您可以修改您的 ssh
配置,为 GitHub 创建一个使用单个 特定 密钥的别名,以便 ssh
在第一次时始终可以使用正确的密钥。这种方法也完全消除了使用ssh-agent
的需要,但如果您有密码并且只想在首次将密钥加载到代理中时输入一次,您可能仍需要使用。
例如,您可以将以下内容放入您的 ~/.ssh/config
文件中。
Host github-me
Hostname github.com
IdentityFile id_rsa_my_git
Host github-company
Hostname github.com
IdentityFile id_rsa_company_git
然后你会使用类似的命令
git clone git@github-me:me/personal_project
git clone git@github-company:company/work_project
ssh
会根据主机名知道使用哪个密钥。
【讨论】:
感谢您的回复。请在此处添加配置文件的示例好吗?以上是关于如何处理多个 ssh 密钥的主要内容,如果未能解决你的问题,请参考以下文章