簡體   English   中英

rsync / git / ssh 問題 macos 11.3.1 / Big Sur

[英]rsync / git / ssh problem macos 11.3.1 / Big Sur

16.6.21 更新

我找到了這個問題的原因。 這是我的 VPN 客戶端(CISCO Anyconnect)。 客戶端安裝了一些包過濾器,因此並非所有包都正確發送到服務器。

問題

我已經在谷歌上搜索了幾個小時來找到我的問題的解決方案,但沒有一個書面解決方案對我有幫助。

上周五,我在我的 Mac Mini (2020) 上全新安裝了 Mac OS Big Sur。 我正在根據我的需要設置我的開發環境,直到昨天它看起來工作得非常好。

昨天試圖向我們的 GitLab 服務器推送一些提交......同時推送錯誤

client_loop: send disconnect: Broken pipe
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly

我嘗試通過在 my./ssh/config 文件中設置幾個 arguments 來修復錯誤,例如:

Host *
  ServerAliveInterval 60
  ServerAliveCountMax 5
  IPQoS=throughput

還有很多。

3 小時后,我真的很生氣,並通過 https 而不是通過 ssh 推送提交。

稍后,我不得不將本地 WordPress 安裝推送到我們的暫存環境。 突然又發生了幾乎相同的錯誤

rsync: [sender] write error: Broken pipe (32)
rsync error: unexplained error (code 255) at io.c(823) [sender=3.2.3]

奇怪的是:
通過 git 克隆或 rsync(均通過 ssh)下載時,一切正常。 通過 ssh 連接到服務器也工作得很好但是! 當我開始上傳大量文件時,我遇到了這些錯誤(也嘗試使用普通的rsync命令)。

這可能是由於我們的服務器(OpenSSH_7.2p2 Ubuntu-4ubuntu2.10、OpenSSL 1.0.2g 2016 年 3 月 1 日)和我的機器(OpenSSH_8.6p1、OpenSSL 1.11)上的不同 OpenSSH 版本造成的嗎?

有人對我有什么建議嗎?

它再次起作用。 我不知道如何或為什么,但它有效。 我(再次)重新安裝了macos,現在它似乎可以工作了。

我仍然無法確定它到底是什么,但我注意到最新更新后 ssh 斷開連接問題。 我可以將其精確定位到 Macbook SSH 庫,因為我執行了以下步驟:

  • 從網絡中的另一個源(iPhone 上的終端、另一個 Mac 和 Debian 在 NUC 上運行)連接沒有任何問題(所有源設備示例中的相同 ssh 目標目的地)
  • 暫時禁用所有網絡廣告攔截、防火牆和過濾
  • 向“問題 macbook”添加了有線連接
  • 嘗試了下面的所有 ssh 配置選項,使用 MacOS 的默認 openSSH 和 LibreSLL 版本
  • 從“問題Mac”連接到不同的目標服務器,並且斷開連接突然出現在不同的時間(僅與問題Mac)。

我認為問題在於默認的 Big Sur OpenSSH 和 LibreSSL 版本。 在我使用brew install openssh安裝 OpenSSH 並使用以下配置后,一切都像以前一樣工作。

我希望它也能解決你的問題,因為我花了幾天時間:(

我的機器

  • macOS 11.3.1
  • MacBook Pro 視網膜 15,2015 年中
  • 英特爾 i7

修復步驟:

  1. brew install openssh
  2. 將配置添加到~/.ssh/config
Host *

    IPQoS none
    TCPKeepAlive no
    ServerAliveInterval 60
    ServerAliveCountMax 5

使用.ssh/config配置值,以滿足您的需求,不要讓它們過於激進

ssh -V brew install openssh后: OpenSSH_8.6p1, OpenSSL 1.1.1k 25 Mar 2021

這可能是由我們服務器上的不同 openssh 版本引起的嗎

檢查是否使用舊的 PEM SSH 密鑰格式會更好,考慮到 OpenSSH 7.8 默認已切換到新格式:

ssh-keygen -t rsa -P "" -m PEM -f ~/.ssh/key2

將該 key2.pub 注冊到您的 GitLab 服務器,並至少嘗試ssh -Tv git@myGitLabServer

還要檢查,如here所述,您的 SSH 配置文件是否有任何非標准指令,如RemoteCommand

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM