如何为我的新 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:&lt;yourSecondACcount&gt;/&lt;yourRepo.git&gt;,并将使用您的第二个密钥。

【讨论】:

你把“/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:&lt;yourSecondAccount&gt;/&lt;yourRepo.git&gt; 吗?使用正确的 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.comHostName 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密钥

如何为 Gitlab 运行器启用通过 SSH 克隆?

如何为 Github 帐户和 Bitbucket 公司帐户添加多个 SSH 密钥

如何为组织帐户生成 GitHub OAuth 令牌?

如何为 SSH 使用新的 Windows 终端应用程序? [关闭]

如何为支持 SSH 的服务器启用 SOCKS