【问题标题】:Can't interact with github无法与 github 交互
【发布时间】:2022-11-06 19:18:18
【问题描述】:

我的笔记本电脑运行arch linux。我想使用 github 来备份我的项目。一开始一切正常,我能够推送前两个提交。
然后我想推动第三次提交,但它花了很长时间。从那时起,与远程存储库的每次通信(在多个存储库上推送、拉取、克隆等)都持续了很长时间,并以错误结束:fatal: could not read from remote repository。有一个例外,我可以推动。之后又是一样的。

ssh 身份验证正在工作。 ssh git@github.com 提供预期的响应。
ssh -T git@github.com 永远不会成功 - 这有关系吗?)

有一些类似的线程,但我还没有找到有效的答案。

我已经尝试过的:

  • 已检查远程存储库 (git remote -v): -- 正确
  • 启动 ssh-agent 并添加密钥 (eval `ssh-agent`, ssh-add)
  • 强制 ssh 使用 IPv4(在 ~/.ssh/config:AddressFamily inet
  • 删除了 git 环境变量 (unset GIT_SSH)
  • 尝试了带/不带密码的多个密钥(rsa、ed25519)
  • 使用带有ssh://方案的url (ssh://git@yourhost:port/path/repo.git)
  • 更新了 git
  • 操作系统的完整更新
  • 凭据助手已禁用 (git config --global --unset credential.helper)
  • 已检查凭据 (git config --global user.name , git config --global user.email)

我什至试图追踪 git pull:

GIT_TRACE=2 GIT_TRACE_PACK_ACCESS=2 GIT_TRACE_PACKET=2 GIT_TRACE_PERFORMANCE=2 GIT_TRACE_SETUP=2 git push -u origin main --verbose

结果:

14:10:30.980851 trace.c:312             setup: git_common_dir: .git
14:10:30.980857 trace.c:313             setup: worktree: /home/alex/Entwicklung/NetCore/ActivityTrackerPC
14:10:30.980863 trace.c:314             setup: cwd: /home/alex/Entwicklung/NetCore/ActivityTrackerPC
14:10:30.980868 trace.c:315             setup: prefix: (null)
14:10:30.980872 git.c:460               trace: built-in: git push -u origin main --verbose
Push nach github.com:2kHammer/ActivityTracker.git
14:10:30.984208 run-command.c:655       trace: run_command: unset GIT_PREFIX; ssh git@github.com 'git-receive-pack '\''2kHammer/ActivityTracker.git'\'''

然后它挂起,直到发生错误。

现在我将项目复制到我的覆盆子并从那里推送。它在那里工作没有问题。

我真的很绝望,git是必不可少的工具。

【问题讨论】:

  • 只是让你知道,@ 987654321@。
  • “永远”的事情可能相关的,尽管究竟如何是一个谜。使用 tcpdump 或 wireshark 之类的工具来监控实际的网络流量,并将缓慢但成功的ssh -T git@github.com 与不成功的git push 进行比较。检查可能破坏数据的中间件/代理盒等。如果出现模式,这将帮助您找到罪魁祸首。
  • 还值得从 Linux 机器和其他可以看到它的机器(例如另一台笔记本电脑,您可以将以太网硬件置于窥探模式)中转储数据包跟踪。有时像这样的问题最终是由于设备驱动程序中的错误造成的,例如某些数据包被损坏。硬件校验和和TSO and so on 促成了这些事情。

标签: linux git github


【解决方案1】:

尝试将您的 ssh 密钥重新添加到您的 ssh 代理

ssh-add ~/.ssh/id

其中 id 是 ssh 密钥是与您的 github 存储库关联的密钥

【讨论】:

  • 我已经尝试过多次了。大多数时候我只有一对密钥。 ssh-add 已自动将正确的密钥添加到 ssh-agent。
猜你喜欢
  • 2018-05-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2013-05-19
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多