公司网络限制22端口,无法用SSH密钥连GitHub/GitLab的安全便捷替代方案
替代SSH密钥连接GitHub/GitLab的安全便捷方案
改用HTTPS协议连接
GitHub和GitLab均默认支持HTTPS连接,无需占用22端口。只需将仓库的远程地址从SSH格式替换为HTTPS格式:比如把git@github.com:username/repo.git改为https://github.com/username/repo.git。
批量修改现有仓库远程地址可执行命令:git remote set-url origin https://github.com/username/repo.git
为避免重复输入账号密码,可配置凭证缓存:- 临时缓存15分钟:
git config --global credential.helper cache - 永久存储凭证(需将存储文件权限设为
600保障安全):git config --global credential.helper 'store --file ~/.git-credentials'
- 临时缓存15分钟:
通过443端口走SSH流量
多数主流Git托管平台支持将SSH流量通过443端口转发,完美绕开22端口限制,且依然能使用SSH密钥认证:- GitHub:编辑
~/.ssh/config文件,添加以下配置:
配置后正常使用SSH URL即可,流量自动走443端口Host github.com Hostname ssh.github.com Port 443 User git - GitLab:编辑
~/.ssh/config添加:
可执行Host gitlab.com Hostname altssh.gitlab.com Port 443 User gitssh -T git@gitlab.com验证连接是否成功
- GitHub:编辑
利用企业内部Git代理/镜像
如果公司部署了内部Git代理或镜像服务器,可直接连接内网镜像地址,再由镜像同步到外部的GitHub/GitLab。这种方式既符合公司网络管控要求,又能保证代码同步的安全性。配置Git代理访问
若公司允许通过HTTP/HTTPS代理访问外网,可在Git中全局配置代理:git config --global http.proxy http://proxy-ip:proxy-port git config --global https.proxy https://proxy-ip:proxy-port配置后HTTPS连接、SSH over HTTPS的方式都能通过代理正常访问外部仓库
内容的提问来源于stack exchange,提问作者Greatzo
相关产品推荐
相关产品推荐

