在 GitLab 中设置 PuTTY 创建的 SSH 密钥

Setup SSH keys created by PuTTY in GitLab

我已经使用 PuTTYgen 生成了一个 public 和一个私钥,并将 public 密钥添加到我的 GitLab 帐户,但是当我尝试克隆存储库时,它仍然想要密码。

我已阅读 this site

的以下说明
  1. 安装 Putty 和相关实用程序

  2. 在Windows(控制Panel\System和Security\System中设置系统环境变量 --> 然后点击左窗格中的“高级系统设置”。然后单击“环境变量”)GIT_SSH=%path_to_plink.exe%(注意 plink.exe 进入你安装 Putty 的位置)

  3. 使用puttygen.exe生成ssh密钥(ssh2-rsa, 4096, comment=GitLab, and set a passphrase)

  4. 将密钥添加到 pageant.exe 并将 public 密钥添加到您的 Git实验室配置文件

  5. 确保启动新命令 shell 以便 git 识别 GIT_SSH 值

  6. 首先尝试这两个命令来检查连接。这应该会给你一个弹出窗口 window 来验证连接

  7. set Git putty git@gitlab.com:%user%/%repo.git%

用法:

  1. 从 Putty 文件夹pagent.exe启动
  2. 将密钥添加到 pageant.exe

我仍然不明白第 5 步,在第 6 步中我没有看到 shell 命令来进行测试。

有人能帮忙吗?

更新:

问题是我没有重新启动 cmd。但现在我收到这条消息: 服务器的主机密钥未缓存在注册表中。你 不能保证服务器就是你的电脑 认为是。 服务器的 ssh-ed25519 密钥指纹为: ssh-ed25519 255 d7:0d:ca:f2:c1:01:46:80:68:4c:5d:e6:d4:52:f9:16 如果您信任此主机,请输入“y”将密钥添加到 PuTTY 的缓存并进行连接。 如果你只想继续连接一次,没有 将密钥添加到缓存中,输入“n”。 如果您不信任该主机,请按 Return 放弃 联系。 将密钥存储在缓存中? (y/n)

它不允许我在那里输入任何内容。

Ensure you start a new command shell so that git recognizes the GIT_SSH value

键入 git bash,然后输入“set|grep GIT_SSH

如果结果为空,则您打开会话的 CMD 会话没有继承您的 Windows 用户环境变量。打开一个新的 CMD。

但我不推荐使用 Putty。 Git for Windows 带有 openssh,在 git bash session

中应该足够了
ssh-keygen -t rsa 
<enter a passphrase>

在 GitHub 上查看更多信息(这也适用于 GitLab)“Generating a new SSH key and adding it to the ssh-agent

OP Petar Yakov 报告必须在凭据管理器中注册其 Git 实验室帐户的密码。
然后 SSH 访问就可以了。