You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更换固态硬盘重装系统复制SSH文件夹后git pull报错排查方案

配置读取状态验证方法

执行带verbose参数的SSH测试命令即可确认配置是否被加载:
ssh -vT git@<你的GitLab域名>
查看命令输出:

  • 如果输出中存在Reading configuration data <你的用户目录>/.ssh/config的日志,且后续打印了对应GitLab地址配置的Host、Port参数,说明配置已被读取
  • 如果输出中没有对应配置加载记录,或连接端口显示为异常的65535,说明配置未被SSH客户端正常识别加载
    你之前的猜测不成立:不是Git完全没读配置,是SSH客户端在加载配置阶段因为异常跳过了有效配置,才走了错误的连接逻辑。
问题根本原因

重装系统后直接复制旧.ssh文件夹触发该报错,核心原因有两个:

  • 文件权限不符合SSH安全校验规则:OpenSSH客户端对.ssh目录、内部私钥、config文件的权限有强制要求,权限过宽(比如所有用户都可读)时,客户端会直接判定文件不安全,拒绝加载对应配置和私钥,转而走默认连接逻辑
  • 目录路径不匹配:如果新系统的用户名、家目录路径和旧系统不一致,你复制的.ssh文件夹不在SSH默认查找的路径下,客户端根本找不到配置文件
修复步骤

按顺序操作即可解决问题:

  1. 确认.ssh目录路径正确
    终端执行echo ~/.ssh,输出的路径就是SSH默认查找配置的路径,把你复制的SSH文件夹整体移动到该路径下,确保文件夹名是.ssh
  2. 修正文件权限
    macOS/Linux系统依次执行以下命令修正权限:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/config
    chmod 600 ~/.ssh/id_rsa  # 如果你用的是其他名字的私钥,替换成对应文件名
    chmod 644 ~/.ssh/*.pub
    
    Windows系统右键点击.ssh文件夹,打开「属性-安全」,删除当前用户以外的所有用户权限,给当前用户授予完全控制权限即可
  3. 校验配置文件内容
    打开~/.ssh/config文件,确认里面配置的GitLab地址、端口、私钥路径都是新系统下的有效路径,不存在旧系统的盘符、旧用户名目录等无效路径
  4. 连接验证
    再次执行ssh -vT git@<你的GitLab域名>,如果输出Welcome to GitLab, @<你的用户名>!,说明SSH连接正常,此时执行git pull即可正常拉取代码

附原报错信息:
Network error: Connection timed out
Connection closed by UNKNOWN port 65535
kex_exchange_identification: Connection closed by remote host
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists

内容的提问来源于stack exchange,提问作者wdm_wcy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:27:22