【发布时间】:2021-12-16 23:10:54
【问题描述】:
在我的笔记本电脑中,我为 GitHub 添加了 SSH-Key,它运行良好。现在我要使用 GitLab。第一步是添加 SSH-Key 来克隆私有仓库。当我为gitlab添加SSH-Key并验证时,这里有问题。
我也添加了我的主机文件:
当我尝试从 gitlab 克隆时,它有错误。
【问题讨论】:
在我的笔记本电脑中,我为 GitHub 添加了 SSH-Key,它运行良好。现在我要使用 GitLab。第一步是添加 SSH-Key 来克隆私有仓库。当我为gitlab添加SSH-Key并验证时,这里有问题。
我也添加了我的主机文件:
当我尝试从 gitlab 克隆时,它有错误。
【问题讨论】:
我看到您在 MinGW 中启动 SSH-Agent 以访问 GitLab,但之后您使用 PowerShell 尝试克隆目标存储库。
首先,您是否检查过在SSH_AUTH_SOCK 中加载了正确的代理?因为在我看来,您在 PowerShell 中没有任何 ssh-agent,所以这就是给您带来错误的原因。
为了在 PowerShell 中启动 ssh-agent,您需要将其作为服务进行,因此您可以这样做
PS> Start-Service ssh-agent
或者如果您希望 ssh-agent 以 Windows 启动,您可以运行(从提升的 PS 提示符):
PS> Set-Service ssh-agent -StartupType Automatic
之后,您只需添加一次 ssh 密钥,但添加到该代理:
PS> ssh-add "E:\SSH key\Gitlab\gitlab"
如果您的 SSH 私钥权限出现错误,您应该在提升的 PowerShell 提示符中运行以下命令:
icacls.exe "E:\SSH key\Gitlab\gitlab" /reset
icacls.exe "E:\SSH key\Gitlab\gitlab" /GRANT:R "$($env:USERNAME):(R)"
icacls.exe "E:\SSH key\Gitlab\gitlab" /inheritance:r
这只会授予当前用户对密钥的读取权限。
【讨论】:
gitlab.com 执行 SSH 时,它会说什么?