Ssh

git push 失敗 - 檢查權限和 ssh 保持活動狀態 - 還有什麼?

  • April 8, 2018

我將我的 git 伺服器遷移到了新伺服器,現在我嘗試將數據推送到新伺服器。

嘗試推送時的日誌

git.exe push --progress "originNew" master:master

Counting objects: 26735, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (14502/14502), done.
Writing objects:   2% (535/26735), 32.00 KiB | 45.00 KiB/s

在對話框 *TortoiseGitPlink 致命錯誤:“網路錯誤:軟體導致連接中止”*上點擊“確定”後,上述文本變為

git.exe push --progress "originNew" master:master

Counting objects: 26735, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (14502/14502), done.
fatal: sha1 file '<stdout>' write error: Broken pipe
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly


git did not exit cleanly (exit code 128) (405265 ms @ 02.04.2018 12:16:21)

可能感興趣:壓縮需要約 6 秒至 99% (14430/14502),對於 100%(最後約 70 項)需要約 6 分鐘。


我已經做了什麼:

權限: 對僅包含 2 個文件的測試儲存庫執行相同操作!

SSH keepalive: 我將客戶端上的 ssh_config 更改為包含

Host *
   ServerAliveInterval 25
   ServerAliveCountMax 40

這應該每 25 秒發送一個數據包(最多 40 次),所以如果我與 git 伺服器的 ssh 連接空閒,它應該保持活動約 16 分鐘。

HD: 客戶端和伺服器上有足夠的空間


問題:

  1. 還有其他想法如何將我的數據推送到新伺服器嗎?
  2. 除了權限和空閒連接之外,還有什麼其他想法會導致這種情況?
  3. 如何檢查我更改的 ssh_config 文件是否正確?(由 TortoiseGit 使用)。我更改了“C:\Program Files\Git\etc\ssh”(只找到了一個)
  4. 我可以以某種方式調查誰關閉了 ssh 連接嗎?
  5. 客戶端和伺服器上的哪些日誌文件可以幫助找到問題?我可以打開任何詳細/調試標誌嗎?

好的,我解決了這個問題,不幸的是我沒有找出問題所在。但也許它會激發有類似問題的人。

我做了什麼:而不是從客戶端推送到新伺服器:

  • 我在舊伺服器上生成密鑰並從那裡推送
  • 我將新伺服器上的 repo 複製到客戶端上的新臨時 repo
  • 我將舊客戶端儲存庫中的更改推送到臨時客戶端儲存庫

(有些更改我無法再推送到舊伺服器。不幸的是,我不記得我是否嘗試從舊客戶端儲存庫推送到新伺服器)

  • 然後我終於將這些更改從 temp 推送到新的伺服器 repo

現在一切正常。我終於可以從(舊的和新的)客戶端回購拉和推到新的伺服器,而且速度非常快。與此同時,我已經刪除了那個新的客戶端回購。

之前持續了很長時間的壓縮部分現在非常快。也許像重新包裝這樣的東西會有所幫助?!

祝你好運

引用自:https://serverfault.com/questions/905743