V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kylebing
V2EX  ›  GitHub

好奇怪,这两天 github 通过 ssh 的方式无法 push 或 pull 了

  •  2
     
  •   kylebing ·
    KyleBing · 2024-01-18 09:31:27 +08:00 · 3853 次点击
    这是一个创建于 366 天前的主题,其中的信息可能已经有所发展或是发生改变。

    2024-01-18
    这两天发现无法跟 github 交互了,我所有的项目都是以 [email protected]:KyleBing/xxxx.git 的方式使用的,不想改成 https:// 。
    反正现在是无法 push | pull 了,本地电脑和服务器的 ssh key 都已加到了 github 账户中,以前正常使用的,这两天都不行了,不知道什么原因,有遇到这种情况的没有?是 github 抽了?我电脑抽了?

    ssh: connect to host github.com port 22: Connection timed out
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    and the repository exists.
    
    第 1 条附言  ·  2024-01-18 10:08:23 +08:00

    已解决

    我将以前那种方式

    git clone ssh://[email protected]:KyleBing/iphone.git iphone-vue
    

    改成

    git clone ssh://[email protected]:443/KyleBing/iphone.git iphone-vue
    

    是可行的。

    但其实有更方便的方法。

    只需要在 ~/.ssh/config 中添加以下配置,以前的项目就都能正常使用了。

    Host github.com
        Hostname ssh.github.com
        Port 443
        User git
    

    官方说明文档: https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port

    # 以这种方式使用是可以的,但不方便。
    Kyle@Kyles-mbp tools % git clone ssh://[email protected]:443/KyleBing/iphone.git iphone-vue
    Cloning into 'iphone-vue'...
    remote: Enumerating objects: 1483, done.
    remote: Counting objects: 100% (224/224), done.
    remote: Compressing objects: 100% (152/152), done.
    remote: Total 1483 (delta 148), reused 141 (delta 72), pack-reused 1259
    Receiving objects: 100% (1483/1483), 6.00 MiB | 2.79 MiB/s, done.
    Resolving deltas: 100% (936/936), done.
    
    # 其实只需要添加关于 github 的 ssh 配置
    Kyle@Kyles-mbp tools % vi ~/.ssh/config
    
    # 就能测试验证成功
    Kyle@Kyles-mbp tools % ssh -T [email protected]
    Hi KyleBing! You've successfully authenticated, but GitHub does not provide shell access.
    
    # 之前的项目也能正常使用了。
    

    谢 v 友解答

    第 2 条附言  ·  2024-01-18 10:10:10 +08:00

    success

    29 条回复    2024-01-26 16:55:26 +08:00
    misaka19000
        1
    misaka19000  
       2024-01-18 09:33:41 +08:00 via Android
    挂梯子
    horizon
        2
    horizon  
       2024-01-18 09:38:37 +08:00   ❤️ 3
    lizy0329
        3
    lizy0329  
       2024-01-18 09:42:08 +08:00   ❤️ 1
    coderpwh
        4
    coderpwh  
       2024-01-18 09:50:38 +08:00   ❤️ 1
    我也是,后来看了 gitconfig 发现被改了,少了 github 的 host,加上就好,应该是升级 git 导致的
    kylebing
        5
    kylebing  
    OP
       2024-01-18 09:53:37 +08:00
    weijancc
        6
    weijancc  
       2024-01-18 10:18:06 +08:00
    就是被墙了, 我也一样, 挂梯子解决
    CHAOFY
        7
    CHAOFY  
       2024-01-18 10:25:48 +08:00
    我挂了梯子还是不行,最后用楼上的方法解决的。
    weijancc
        8
    weijancc  
       2024-01-18 10:30:04 +08:00
    @CHAOFY 我想你只是开了全局代理, 需要使用 VPN 或者 tap 模式走流量, ssh 是不走全局代理的
    32uKHwVJ179qCmPj
        9
    32uKHwVJ179qCmPj  
       2024-01-18 10:32:59 +08:00
    挂梯子不行是因为 ssh 协议没走梯子,改成 https 或者用 tun 模式应该就行
    rowG
        10
    rowG  
       2024-01-18 10:37:50 +08:00
    我昨天也遇到了,也是用 config 文件那种方法解决的。
    我还以为是公司网络端口的问题
    yyancy517
        11
    yyancy517  
       2024-01-18 10:40:00 +08:00
    我昨天也遇到了, 晚上回去试试 github 给的方案
    BaseException
        12
    BaseException  
       2024-01-18 10:41:34 +08:00   ❤️ 1
    443 clone, 写 C:\Users\xxx\.ssh\config 文件,这样更好用。

    借楼宣传我写的这篇文章了

    [2022.03] GitHub 加速终极教程 https://hellodk.cn/post/975
    yyancy517
        13
    yyancy517  
       2024-01-18 10:51:09 +08:00
    为什么回复不了
    yyancy517
        14
    yyancy517  
       2024-01-18 10:51:58 +08:00   ❤️ 1
    @BaseException #12 好文章, 总结的不错. 晚上我回去试试看行不行
    uncat
        15
    uncat  
       2024-01-18 11:17:25 +08:00   ❤️ 2
    如果你有一台非中国大陆地区的服务器,假设信息如下:

    地址是:1.2.3.4
    用户名是:root

    把本地的 SSH 公钥添加到服务器上,然后在本地 ~/.ssh/config 内添加:

    Host github.com gitlab.com
    ProxyJump [email protected]

    即可(所有平台都可以,包括 Windows ,Windows 在 PowerShell 内操作)

    不用依赖任何本地工具(比如 netcat)
    uncat
        16
    uncat  
       2024-01-18 11:19:02 +08:00
    git 协议实际上是基于 SSH 的,上面的配置,是基于 1.2.3.4 进行 SSH 流量中专( ProxyJump )的意思。
    licoycn
        17
    licoycn  
       2024-01-18 11:39:01 +08:00
    直接同步一下 github 的 hosts ,就可以了,简单粗暴: https://github.com/Licoy/fetch-github-hosts
    wdssmq
        18
    wdssmq  
       2024-01-18 12:00:51 +08:00
    现在还好,但是去年大半年时间内也是连不上。。让 ssh 走代理的姿势如下。。

    Host git
    HostName github.com
    User git
    ProxyCommand "C:\Program Files\Git\mingw64\bin\connect.exe" -S 127.0.0.1:10808 %h %p

    443 端口以及 15 楼的方式万一下次遇上感觉也可以试下。。
    pkoukk
        19
    pkoukk  
       2024-01-18 12:01:42 +08:00
    @uncat #15 都有代理服务器了,为啥不直接搭个梯子呢
    uncat
        20
    uncat  
       2024-01-18 12:39:03 +08:00
    @pkoukk 减少复杂度。服务器不需要安装任何工具(出厂默认有 SSH ),服务器添加一行配置,本地需添加两行配置即可。
    codelover612
        21
    codelover612  
       2024-01-18 14:03:01 +08:00 via iPhone
    我也是,梯子解决
    equationzhao
        22
    equationzhao  
       2024-01-18 14:10:56 +08:00
    demonchang
        23
    demonchang  
       2024-01-18 14:13:57 +08:00
    我是改 hosts 140.82.112.3 github.com
    magicZ
        24
    magicZ  
       2024-01-18 16:36:52 +08:00
    @horizon nice ,可行
    susheng
        25
    susheng  
       2024-01-20 00:43:34 +08:00
    @demonchang 这个可行,问下 ip 怎么找的?
    demonchang
        26
    demonchang  
       362 天前
    @susheng 也是网上搜的
    GodVan
        27
    GodVan  
       362 天前
    6 ,lz 的方法可用!
    xinshoushanglu
        28
    xinshoushanglu  
       358 天前
    太蛋疼了,github 突然改了这个,我挂代理 也是 git 命令全部不通
    xinshoushanglu
        29
    xinshoushanglu  
       358 天前
    先本地加 hosts 的 github 解析记录了,太蛋疼了,挂代理 ssh git 都不行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   958 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 22:56 · PVG 06:56 · LAX 14:56 · JFK 17:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.