无需GitLab高级版:GitLab镜像至GitHub的配置及故障排查
免费版GitLab项目镜像到GitHub的正确配置
一、先解决「URI无效」的基础配置
- 修正SSH镜像地址
别用带两个冒号的错误格式:ssh://git@github.com:stefaneidelloth/mirror_demo.git
正确格式是把第二个冒号换成斜杠:ssh://git@github.com/stefaneidelloth/mirror_demo.git - 配置SSH密钥认证
- 在GitLab镜像设置里选
SSH public key,GitLab会自动生成密钥对 - 复制生成的公钥,加到**GitHub目标项目的「Settings > Deploy keys」**里(不是你GitHub账号的SSH设置),记得勾上「Allow write access」
- 在GitLab镜像设置里选
二、解决SSH连接超时及后续疑问
疑问a:要不要指定非22端口?怎么设置?
GitHub支持走443端口SSH,但你之前的格式错了,正确地址是:ssh://git@ssh.github.com:443/stefaneidelloth/mirror_demo.git
(主机名得是ssh.github.com,不是github.com,这才是你之前失败的原因)
疑问b:需要手动输主机密钥吗?填什么?
不需要手动输入,GitLab会自动验证。如果真遇到验证问题,用GitHub官方的主机公钥(对应22端口):
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg= github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
优先让GitLab自动处理,手动输入只当应急用。
疑问c:用GitHub Access Token走HTTPS为啥失败?
检查这几点:
- HTTPS地址要带认证信息:格式是
https://<你的GitHub用户名>:<AccessToken>@github.com/stefaneidelloth/mirror_demo.git
免费版GitLab的镜像设置里,HTTPS方式得把用户名和Token直接嵌进URL,不能单独填密码框 - Token权限要够:生成Token时必须勾选
repo权限,确保能读写目标GitHub项目 - 检查拼写:确认用户名、仓库名、Token都没写错
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

