如何为我的新 gitlab 帐户生成新的 ssh-key?
Posted
技术标签:
【中文标题】如何为我的新 gitlab 帐户生成新的 ssh-key?【英文标题】:How do I generate a new ssh-key for my new gitlab account? 【发布时间】:2018-06-23 04:59:02 【问题描述】:我有两个 Gitlab 帐户。在我的旧帐户上,我添加了一个 ssh-key,它位于我的计算机上的~/.ssh/id_rsa.pub
。
现在我想为我的新 Gitlab 帐户添加另一个 ssh-key。如何在没有 ssh-keys 冲突的情况下执行此操作?
【问题讨论】:
Best way to use multiple SSH private keys on one client的可能重复 @phd 不,我的问题不同,我的问题与多个 gitlab 帐户对应的多个 ssh 密钥相关,我已经阅读了该问题。 Multiple SSH Keys on the same device的可能重复 【参考方案1】:我会推荐第二个密钥,现在没有密码:
ssh-keygen -t rsa -C "your_email@example.com" -P "" -q -f ~/.ssh/gitlab_rsa
这将创建(没有任何提示)~/.ssh/gitlab_rsa
(私钥)和~/.ssh/gitlab_rsa.pub
(公钥)
你需要register that second gitlab_rsa.pub
public key to your second GitLab account。
导航到“配置文件设置”中的“SSH 密钥”选项卡。将您的密钥粘贴到“密钥”部分并为其指定相关的“标题”。
然后添加一个~/.ssh/config
文件:
Host gitlab_rsa
HostName gitlab.com
User git
PreferredAuthentications publickey
IdentityFile /home/<you>/.ssh/gitlab_rsa
最后,您可以克隆任何 GitLab 存储库作为您的第二个身份:
git clone gitlab_rsa:<yourSecondAccount>/<yourRepo.git>
这将自动替换为git@gitlab.com:<yourSecondACcount>/<yourRepo.git>
,并将使用您的第二个密钥。
【讨论】:
你把“/Users”误认为“/home”了吗? @BenyaminJafari 是的,简单的错字,但这个答案的总体思路仍然有效。 我对以下结构有问题:当我 git clone 时,我会遇到这个错误:sign_and_send_pubkey:signing failed: agent denied operation GitLab: The project could not be found.致命:无法从远程存储库中读取。请确保您拥有正确的访问权限并且存储库存在。 @BenyaminJafari 您的第二个 Gitlab 公钥是否已在您的第二个 Gitlab 帐户中注册? @BenyaminJafari 您的网址是gitlab_rsa:<yourSecondAccount>/<yourRepo.git>
吗?使用正确的 Gitlab 用户名和仓库名称?【参考方案2】:
您需要创建文件~/.ssh/config
来定义每个域应该使用哪个密钥。
使用 nano 创建该文件并粘贴您的配置:
nano ~/.ssh/config
并添加:
Host your-gitlab.com
HostName your-gitlab.com
IdentityFile ~/.ssh/your-gitlab-privkey
【讨论】:
你的“your-gitlab.com”是什么意思?your-gitlab.com
应该是您要连接的 GitLab 网址。就像我想将该密钥链接到 github.com -> Host github.com
和 HostName github.com
@BenyaminJafari 这就是我在回答中解释的内容(写在这个重复的答案之前):您在 ssh/config 中放入的内容是一个密钥:您将在 SSH URL 中使用该密钥。跨度>
@VonC ,不需要放'(写在这个重复的之前)'。只需评论您自己的条目即可。【参考方案3】:
生成一个新的密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
它会要求您输入密钥文件的名称:
Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]
选择不同的东西,例如 /Users/you/.ssh/gitlab_rsa
然后,当您需要时,将此密钥添加到您的 ssh-agent 中:
ssh-add ~/.ssh/gitlab_rsa
如果您想要永久访问权限,您可以编辑您的 ~/.ssh/config
文件:
Host gitlab_rsa
HostName gitlab.com
User git
PreferredAuthentications publickey
IdentityFile /home/<you>/.ssh/gitlab_rsa
请参阅此article 了解更多详情。
【讨论】:
我认为你应该使用“gitlab_rsa”而不是“second”来对应你的答案。 @BenyaminJafari 这只是从我的回答中复制过来的。 是的,这是写的,但我尝试修复它以便更好地理解【参考方案4】:生成 SSH 请按照以下步骤操作。
在你的机器上打开 Git Bash
输入以下命令生成
ssh-keygen -t rsa -b 4096 -C "yourmail@example.com"
生成公钥/私钥 rsa 密钥对。 输入要保存密钥的文件(/c/Users/you/.ssh/id_rsa):按回车 Enter passphrase (empty for no passphrase): 输入密码 再次输入相同的密码:再次输入密码
输入确认密码后,会收到确认信息。
转到 gitpair.pub 文件位置并右键单击使用记事本打开。 复制代码并粘贴在下面的文本框中,您的电子邮件将自动在标题框中选择。 然后点击添加键。
【讨论】:
以上是关于如何为我的新 gitlab 帐户生成新的 ssh-key?的主要内容,如果未能解决你的问题,请参考以下文章
markdown 如何为两个GitLab帐户设置两个SSH密钥
如何为 Github 帐户和 Bitbucket 公司帐户添加多个 SSH 密钥