我正在透過 Google Cloud 啟動多個遠端實例,並將scp
腳本新增至這些執行個體以執行它們並將結果scp
傳回我的本機。事情開始很順利,但過了一段時間(大約 30 個實例後),新實例無法將scp
文件傳回我的計算機,因為我收到錯誤:ssh_exchange_identification: Connection closed by remote host
。只有當我使用以下命令重置本機電腦的 ssh 後,此錯誤才會消失:
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
根本問題是什麼?
答案1
您可能會遇到 sshd最大創業公司限制:
最大創業公司
指定 SSH 守護程序的並發未經身份驗證連線的最大數量。在身份驗證成功或連線的 LoginGraceTime 過期之前,其他連線將被刪除。預設值為 10:30:100。
或者,可以透過指定三個冒號分隔的值 start:rate:full(例如「10:30:60」)來啟用隨機提前丟棄。如果目前有 start (10) 個未經身份驗證的連接,則 sshd(8) 將以速率/100 (30%) 的機率拒絕連接嘗試。如果未經驗證的連線數量達到滿 (60),機率會線性增加,並且所有連線嘗試都會被拒絕。
您可以嘗試更改設定。在 MacOS 上,設定檔為/private/etc/ssh/sshd_config
.
或者,您可以安排錯開與伺服器的 ssh 連接,這樣它們就不會同時進入。