首页 > 解决方案 > 在 GitLab 中设置 PuTTY 创建的 SSH 密钥

问题描述

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

我已阅读本网站的以下说明

  1. 安装 Putty 和相关实用程序

  2. 在 Windows 中设置系统环境变量(控制面板\系统和安全\系统 --> 并单击左侧窗格中的“高级系统设置”。然后单击“环境变量”) GIT_SSH=%path_to_plink.exe% (注意 plink. exe 进入您安装 Putty 的任何位置)

  3. 使用 puttygen.exe 生成 ssh 密钥(ssh2-rsa,4096,comment=GitLab,并设置密码)

  4. 将密钥添加到 pageant.exe 并将公钥添加到 GitLab 配置文件

  5. 确保您启动一个新的命令外壳,以便 git 识别 GIT_SSH 值

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

  7. 设置 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 放弃连接。将密钥存储在缓存中?(是/否)

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

标签: gitsshgitlabputty

解决方案


确保您启动一个新的命令外壳,以便 git 识别 GIT_SSH 值

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

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

但我不建议使用 Putty。适用于 Windows 的 Git 带有 openssh,在 git bash 会话中就足够了

ssh-keygen -t rsa 
<enter a passphrase>

在 GitHub 上查看更多信息(这也将适用于 GitLab)“生成新的 SSH 密钥并将其添加到 ssh-agent

OP Petar Yakov报告说必须在凭证管理器中注册他们的 GitLab 帐户的密码。
然后SSH访问工作。


推荐阅读