连接到 gitlab 时使用 ssh 面临身份验证失败
Posted
技术标签:
【中文标题】连接到 gitlab 时使用 ssh 面临身份验证失败【英文标题】:Facing authentication failure with ssh when connecting to gitlab 【发布时间】:2020-08-15 15:38:07 【问题描述】:当尝试从 gitlab 克隆 git 帐户时,
git clone git@gitlab.com:username/project.git
面临以下错误,
git@gitlab.com:权限被拒绝(公钥)。致命:无法读取 来自远程存储库。
gitlab 使用我的 custom.pub 公钥注册。 Windows 客户端 PC 的私有和公共 ssh 密钥都存储在“C:/Users/username/.ssh”中。
如何解决此故障
【问题讨论】:
这能回答你的问题吗? Setting a custom path for git private SSH key on linux 其中一个答案确实与此处提出的解决方案相匹配,但问题在语义上有所不同。在那里,用户无法访问“./ssh”位置。在这里,用户不知道自定义命名密钥需要特殊说明才能使 SSH 工作。这里的用户可以完全控制 .ssh 目录,因此修复很容易。我建议这两个问题都存在,它将使社区经历的两个不同用例受益。 【参考方案1】:此答案适用于 Windows。也应该适用于经过一些修改的 Linux 机器。
由于 ssh 密钥是使用自定义名称“custom.pub”创建的,因此 ssh 无法使用该密钥。默认情况下,它会查找“id_ecdsa”/“id_rsa”命名的密钥文件。以下是修复此类身份验证错误的步骤,
-
首先检查 ssh 当前尝试为 gitlab 使用什么密钥:转到 cmd,ssh -v git@gitlab.com
如果它没有吐出你在 gitlab 注册的密钥,那么你应该告诉 ssh 选择正确的密钥。这可以通过 .ssh/config 文件中的设置来完成
打开 .ssh/config 文件并进行以下更改,
主机 *gitlab.com
IdentityFile <your_custom_key_path>/custom_key
【讨论】:
以上是关于连接到 gitlab 时使用 ssh 面临身份验证失败的主要内容,如果未能解决你的问题,请参考以下文章
如何使用没有密码的 SSH 身份验证连接到 Windows SFTP 服务器? [复制]