V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
lixikei
V2EX  ›  Go 编程语言

go 引入带有端口号的 git 服务下的包问题

  •  
  •   lixikei · 3 天前 · 1501 次点击

    大神们 小公司把 git 域名弄了个 git.code.com:185 这样的访问域名,我该如何优雅的使用 go 公共包的引用啊? 我目前用 gitproxy.code.com 这个域名反代了一下 git.code.com:185 的服务, 我自己使用的 ubuntu 顺利通过了,可以直接 go get gitproxy.code.com/module 下的模块了

    但是在 windows 同事的电脑上,go get 的时候就卡在认证失败。

    还有更好的解决办法吗? 无法直接将 git.code.com 切换到到 80 端口上来(奇葩原因)

    22 条回复
    FrankAdler
        1
    FrankAdler  
       3 天前
    认证失败应该是反代没设置好
    hwdq0012
        2
    hwdq0012  
       3 天前
    如果是 ssh ,git clone ssh://域名:端口/组织/仓库.git
    fffq
        3
    fffq  
       3 天前
    感觉是 git clone 没带端口号问题
    kneo
        4
    kneo  
       3 天前
    认证失败的错误是啥? https 证书错误?
    lixikei
        5
    lixikei  
    OP
       3 天前
    @FrankAdler 可是我 ubuntu 下可以正常认证通过

    @fffq clone 确实没有端口号的问题,但是在 go 代码里引入这个包的时候,链接中不能带端口号
    lixikei
        6
    lixikei  
    OP
       3 天前
    @kneo remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. 我看了下账户没有开启 2FA
    dyexlzc
        7
    dyexlzc  
       3 天前
    gomod 里 replace 掉试试 replace xxx:185 => ../xxx
    lixikei
        8
    lixikei  
    OP
       3 天前
    @dyexlzc 就是不想用这种方式 才搞的 gitproxy,他们之前就用的 replace 到本地一个路径
    lixikei
        9
    lixikei  
    OP
       3 天前
    目前我是 ubuntu 系统,已经正常使用了,他们 windows 的还不行
    liuidetmks
        10
    liuidetmks  
       3 天前
    ssh ?
    cyrivlclth
        11
    cyrivlclth  
       3 天前
    我记得我之前是在 git 的 config 里面配置的,具体忘了,感兴趣的话,可以搜一下
    cyrivlclth
        12
    cyrivlclth  
       3 天前
    @cyrivlclth 哦,我配的是 ssh 替换 https ,用的 insteadOf ,那里面能加端口号
    lixikei
        13
    lixikei  
    OP
       3 天前
    git config --global url."gitproxy.code.com".insteadOf git.code.com:185

    这样我让他们试试
    xuecan
        14
    xuecan  
       3 天前
    你都自己部署了 干嘛要暴露带端口号的
    klusfq
        15
    klusfq  
       3 天前   ❤️ 1
    Erroad
        16
    Erroad  
       3 天前
    就是 goproxy 解决吧,其他的事情在 goproxy 里实现
    harlen
        17
    harlen  
       3 天前
    @lixikei HTTPS 协议和 ssh 协议端口不一样,go 默认用的 ssh 协议,以前公司的做法, 是将 ssh 协议改成 HTTPS 类似 ,替换的时候指定了协议,将 git 协议的资源描述符,替换成 HTTPS 的资源描述符, 如 git#gitproxy.code.com.insteadof https#git.code.com:185 具体是啥还要看日志访问的是啥地址
    leedef703777
        18
    leedef703777  
       3 天前
    可以在 ~/.ssh/config 配置里加上
    Host gitlab.xxx.cn
    Port 1234
    FarmerChillax
        19
    FarmerChillax  
       3 天前
    我也遇到过同样的问题,之前研究过这个问题,核心是因为拉包的时候会判断 Meta 标签中的信息。这个无法绕过,因此解决方法:
    1. 修改代码仓库的端口为标准端口
    2. 在代码仓库前面添加反向代理兼容之前的端口
    buffzty
        20
    buffzty  
       3 天前
    最好的解决方案 把端口改成 22 的,不然你以后有的烦了,来一个新人就问你一遍
    治标还是治本自己选
    lixikei
        21
    lixikei  
    OP
       3 天前
    @buffzty 我能正常用就行了,不管那么多了,我只是个刚来一个月的新人,😄,其他人就用 replace 吧
    lixikei
        22
    lixikei  
    OP
       2 天前
    今天排查问题,我那 windows 同事 是自己输错了账号密码,导致的一直认证不过,哎。结帖。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3039 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:07 · PVG 08:07 · LAX 17:07 · JFK 20:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.