无法通过SSH URL导入GitLab项目,仅能SSH访问该如何解决?
解决GitLab导入仅SSH访问仓库的问题
问题背景
尝试通过URL导入仓库时遇到错误:
Import url is blocked: Only allowed schemes are http, https, git
原因是GitLab默认仅允许http/https/git协议的URL导入,而目标仓库仅支持SSH访问。
通用解决方案(无需GitLab管理员权限)
如果没有GitLab服务器的管理权限,可通过本地中转完成导入:
- 本地克隆目标SSH仓库:
git clone git@git.xyz.se:project.git - 在GitLab创建空白新项目(不要选择导入选项),记录该项目的SSH或HTTPS远程地址。
- 进入本地克隆的仓库目录,添加GitLab项目作为新的远程仓库:
cd project git remote add gitlab <你的GitLab项目远程地址> - 推送所有分支和标签到GitLab:
git push --all gitlab git push --tags gitlab
管理员专属解决方案(修改GitLab配置)
若你是GitLab服务器管理员,可直接修改配置允许SSH协议导入:
- 编辑GitLab主配置文件(通常路径为
/etc/gitlab/gitlab.rb):# 修改允许的导入协议列表,添加ssh gitlab_rails['allowed_import_schemes'] = ['http', 'https', 'git', 'ssh'] - 重新配置并重启GitLab服务:
gitlab-ctl reconfigure gitlab-ctl restart - 完成后即可直接使用SSH格式的URL(
git@git.xyz.se:project.git)进行仓库导入操作。
内容的提问来源于stack exchange,提问作者Michał Kochanowicz
相关产品推荐
相关产品推荐

