> 技术文档 > 【Git】解决 GitLab “Ensure URL is HTTPs“ 拉取的问题

【Git】解决 GitLab “Ensure URL is HTTPs“ 拉取的问题


问题背景

在使用 Git 拉取代码时,您可能遇到过以下错误信息:

git pull origin dev_2.4.6fatal: Unencrypted HTTP is not supported for GitHub. Ensure the repository remote URL is using HTTPS.

这个错误提示实际上反映了一个重要的安全更新:GitLab 自 2021 年 8 月起默认禁用了未加密的 HTTP 协议。这意味着您需要使用更安全的连接方式与 Git 仓库进行交互。

解决方案

方案一:使用 SSH 协议(推荐)

SSH(Secure Shell)提供了一种安全的连接方式,通过非对称加密保护您的代码传输。这是解决此问题的首选方案,步骤如下:

  1. 生成 SSH 密钥对

    ssh-keygen -t rsa -b 4096 -C \"your_email@example.com\"

    执行此命令后,系统会提示您设置文件保存位置和密码。通常可以使用默认位置(~/.ssh/id_rsa),密码可以设置也可以留空。

  2. 将公钥添加至 GitLab 账户

    • 查看您的公钥内容:

      cat ~/.ssh/id_rsa.pub
    • 复制输出的全部内容

    • 登录您的 GitLab 账户

    • 进入 Settings > SSH Keys

    • 粘贴公钥内容并保存

  3. 修改远程仓库地址为 SSH 格式

    git remote set-url origin git@your-gitlab-server:username/repository.git

    请将 your-gitlab-serverusernamerepository 替换为您的实际信息。

方案二:使用 HTTPS 协议

如果您无法使用 SSH(比如在某些企业环境中),可以将远程仓库地址更改为 HTTPS 格式:

git remote set-url origin https://your-gitlab-server/username/repository.git

使用 HTTPS 时,您可能需要:

  • 每次操作时输入用户名和密码
  • 或配置 Git 凭证管理器缓存您的凭证

验证配置

完成配置后,可以通过以下命令验证远程仓库地址是否正确设置:

git remote -v

此命令会显示当前配置的远程仓库地址,确保它使用了 SSH(git@)或 HTTPS(https://)协议。