从GitLab上克隆代码仓库时遇到的问题,执行 git clone
命令时,终端显示了权限被拒绝的错误:
git clone git@gitlab.example.com:xxx/xxx/xxx.git
...
git@gitlab.example.com: Permission denied (publickey).
fatal: Could not read from remote repository.
根据错误日志,问题出在SSH密钥认证失败上。
方案一:将现有本地的SSH公钥添加到GitLab
- 打开GitLab的个人设置页面,在SSH Keys的设置中点击"Add SSH Key"。
- 打开本地的公钥文件
~/.ssh/id_rsa.pub
,复制里面的密钥内容(这里用...
代替做脱敏)。
ssh-rsa ... xx@xxx
- 将复制的公钥内容粘贴到GitLab的"Key"文本框中,为这个密钥设置标题,点击"Add Key"完成添加。
添加完成后,重试 git clone
命令,就可以成功克隆了代码仓库。
方案二:重新生成新的SSH密钥对
也可以选择重新生成一对新的SSH密钥:
- 在终端中输入
ssh-keygen
命令,一路回车使用默认设置即可生成新的密钥对。 - 打开新生成的公钥文件
~/.ssh/id_rsa.pub
,复制里面的公钥内容。 - 在GitLab的SSH Keys设置中,点击"Add SSH Key",将复制的公钥内容粘贴到"Key"框中,设置标题后保存。
- 使用新的SSH密钥对尝试
git clone
命令,应该就可以顺利克隆代码仓库了。