问题背景
在使用 Git 拉取代码时,您可能遇到过以下错误信息:
git pull origin dev_2.4.6
fatal: Unencrypted HTTP is not supported for GitHub. Ensure the repository remote URL is using HTTPS.
这个错误提示实际上反映了一个重要的安全更新:GitLab 自 2021 年 8 月起默认禁用了未加密的 HTTP 协议。这意味着您需要使用更安全的连接方式与 Git 仓库进行交互。
解决方案
方案一:使用 SSH 协议(推荐)
SSH(Secure Shell)提供了一种安全的连接方式,通过非对称加密保护您的代码传输。这是解决此问题的首选方案,步骤如下:
-
生成 SSH 密钥对
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
执行此命令后,系统会提示您设置文件保存位置和密码。通常可以使用默认位置(~/.ssh/id_rsa),密码可以设置也可以留空。
-
将公钥添加至 GitLab 账户
-
查看您的公钥内容:
cat ~/.ssh/id_rsa.pub
-
复制输出的全部内容
-
登录您的 GitLab 账户
-
进入 Settings > SSH Keys
-
粘贴公钥内容并保存
-
-
修改远程仓库地址为 SSH 格式
git remote set-url origin git@your-gitlab-server:username/repository.git
请将
your-gitlab-server
、username
和repository
替换为您的实际信息。
方案二:使用 HTTPS 协议
如果您无法使用 SSH(比如在某些企业环境中),可以将远程仓库地址更改为 HTTPS 格式:
git remote set-url origin https://your-gitlab-server/username/repository.git
使用 HTTPS 时,您可能需要:
- 每次操作时输入用户名和密码
- 或配置 Git 凭证管理器缓存您的凭证
验证配置
完成配置后,可以通过以下命令验证远程仓库地址是否正确设置:
git remote -v
此命令会显示当前配置的远程仓库地址,确保它使用了 SSH(git@)或 HTTPS(https://)协议。