簡體   English   中英

Git pull/push - 無法訪問 HTTPS,SSL 例程似乎已關閉

[英]Git pull / push - unable to access HTTPS, SSL routines seem to be down

我每天都在使用 Git(和 GitHub),一切正常,突然之間,我無法再通過我的 Git 命令與遠程 GitHub 存儲庫進行通信。 當我嘗試“Git pull”時,出現以下錯誤:

致命:無法訪問“ https://github.com/snahrvar/eatibl.git/ ”:錯誤:1407742E:SSL 例程:SSL23_GET_SERVER_HELLO:tlsv1 警報協議版本

因此,我在多個存儲庫中進行了測試,並且在我的計算機上遇到了相同的錯誤。 我讓其他人與這些相同的存儲庫進行了交互,這對他們來說效果很好。 在此錯誤之前,我對一個項目進行了“npm installSharp”,但最終失敗了,我懷疑這可能與某些 SSL 設置有關,但這是一個瘋狂的猜測!

任何一般的想法或指導將不勝感激!

如果它有幫助,這是我的環境:

  • Git 版本:1.9.4.msysgit.2
  • Windows 版本:Windows 8.1

根據@Frederic在評論中的建議,更新TortoiseGit和GCM並沒有幫助我,但更新Git本身卻有幫助。

https://git-scm.com/download/win

為了確保新版本的Git能夠正確安裝並且與先前的安裝沒有沖突(如果使用TortoiseGit,則可能會使用不同的文件夾,並且會混淆PATH變量,因此可能會發生),請在安裝更新的Git之前刪除現有的Git安裝。 。 可能還需要以管理員權限安裝。

您可能會遇到與GitHub棄用弱SSL加密協議不兼容的情況:

弱加密標准刪除通知

解決方案會有所不同,但對於Windows,您可能需要將Git憑據管理器升級到1.14.0。

https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0

如果您使用的是Android Studio或IntelliJ IDEA, 則將 Git更新到最新版本並更改指向新版本的路徑可以為我解決問題。

在此處輸入圖片說明

使用TortoiseGit,我為此做了所有其他修復/更新,但仍然沒有成功。 我發現了這一點: 突然無法git push / pull / fetch

我的Windows Git.exe路徑的Git的TortoiseGit設置指向C:\\Program Files (x86)\\Git\\bin 我將其更改為C:\\Program Files\\Git\\bin ,現在又可以正常工作了。

這對我有用。

  1. 從此處安裝最新版本的Git: https//git-scm.com/download/win
  2. 在TortoiseGit中,轉到菜單設置常規Git.exe路徑 -將其從32位路徑更改為64位路徑:C:\\ Program Files(x86)\\ Git \\ bin→C:\\ Program Files \\ Git \\ bin

在我的情況下,更新Git是不夠的。 經過幾個小時的調試,這是我的解決辦法:

C:\wamp64\www\maandlastenmanager> git config http.sslVersion
tslv1.0

C:\wamp64\www\maandlastenmanager> git config http.sslVersion tlsv1.2

C:\wamp64\www\maandlastenmanager> git config http.sslVersion
tslv1.2

Visual Studio Code終端上從GitHub提取代碼時,我遇到了同樣的問題。 我發現前面的答案中的建議很有用,並按照以下步驟共同找到了解決方案:

該存儲庫非常有用。

我希望這可以幫助別人。

TL; DR: git config --system http.sslbackend schannel並關閉防病毒軟件中對github.com HTTPS檢查


我在Windows 8 x64上使用Git命令行。 另外,默認情況下, 我的防病毒軟件會檢查HTTPS流量 像其他人一樣,我幾乎每天都在使用GitHub。

  • 更新Git-沒有幫助-因為我使用了OpenSSL(請參見下文)
  • 更新憑證管理員-沒有幫助

然后,我開始切換SSL后端:

git config --system http.sslbackend openssl ----------------vs------------------ git config --system http.sslbackend schannel和防病毒軟件檢查SSL流量:

  1. OpenSSL,HTTPS檢查ON: error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
  2. OpenSSL,HTTPS檢查OFF: SSL certificate problem: unable to get local issuer certificate
  3. SecureChannel,HTTPS檢查ON: schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
  4. SecureChannel,HTTPS檢查OFF:工作正常

PS:不用命令行,您只需選擇“使用本機Windows SSL驗證庫”即可重新安裝最新的Git。

PPS:情況(3)似乎是schannel庫中的錯誤,因為我的防病毒軟件使用的MITM證書已在我的計算機上列入白名單。

對我來說,與Git 1.9.5.msysgit.1相同。 我嘗試安裝https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0 ,但沒有更改。

實際上,安裝后什么也沒有發生。 也許我做錯了什么? (這可能對最初的問題沒有幫助,但對其他人而言,是的!)

在macOS上,您可以通過Homebrew 安裝最新的git

是的,我今天在請求請求時遇到了相同的問題,解決方案是通過下載最新(2.16.2)64位版本的Windows Git來簡單地更新Git。 它於5天前發布於2018-02-20。

@andw的評論對我有用:

使用以下步驟將Git版本1.9.5更新為2.15.1:

在sourceTree中,轉到菜單工具選項Git使用嵌入式Git

一個快速的解決方案是git config --global http.sslVerify true ,但是不建議這樣做 ,因為它無法達到使用SSL的目的。

第二種更好的方法是使用ssh密鑰而不是SSL URL。

生成SSH密鑰的步驟

o在Git終端(Git Bash)中運行以下命令: ssh-keygen

運行命令后,將出現以下消息:

生成公共/私有RSA密鑰對。

輸入要保存密鑰的文件(/h//.ssh/id_rsa):

提供密鑰的存儲路徑,例如,輸入要保存密鑰的文件(/h//. C:\\Users\\Public\\my-new-ssh-key id_rsa): C:\\Users\\Public\\my-new-ssh-key

然后提供該密鑰的密碼短語(任何至少8個字符的密碼)

•接下來,運行以下命令:eval“ $(ssh-agent –s)”

•運行以下命令: ssh-add C:/Users/Public/my-new-ssh-key注意:在新創建的SSH密鑰的路徑中使用正斜杠。

之后,添加文件my-new-ssh-key.pub的內容,並將其添加到添加公鑰 (Bitbucket,GitHub等)的文本區域中。

連接到遠程存儲庫以獲取,拉取,推送等時,我遇到了相同的錯誤:

fatal: unable to access 'https://github.com/repository.git/': error:1
407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

我只是重新安裝了Git 64位而不是32位,這解決了該問題。

安裝后,請驗證環境變量中的Git路徑。 它應該是:

C:\Program Files\Git\bin\git.exe

這是IntelliJ和RubyMine的問題。 GitHub必須禁用SSL(也許符合PCI?),以支持TLS。 如果您在IntelliJ或RubyMine中打開“設置”並導航至“版本控制”>“ Git”,則會看到它正在使用安裝在應用程序路徑下的git.exe。 您應該下載最新版本的Git,並在VCS設置中更改路徑以指向該路徑,例如,如果在Windows上安裝它,則C:\\ Program Files \\ Git \\ bin \\ git.exe。 在那之后就像魅力一樣。

有時,這是由於過時的msysgit使用舊的ssl而不再維護的,您可以為Windows安裝最新的git ,然后將tortoise設置中的git.exe路徑指向它,然后此問題就消失了。

遇到類似的錯誤。 在Windows上,將Windows上的git更新到最新版本。 這解決了問題。

Git版本升級幫了我大忙。 我的版本為1.9.5 ,因此在Windows上升級為2.21.0 升級也很容易。 我們不需要卸載舊版本。 下載最新的Git安裝程序,然后繼續使用默認選項繼續按下,然后該版本將更改為新版本,所有舊設置仍將像ssh密鑰等一樣工作。我們無需再次生成密鑰並放入github或任何其他存儲庫。

之前我的https協議克隆無法正常工作並給出錯誤

致命:無法訪問' https://github.com/tensorflow/models/ ':錯誤:1407742E:SSL例程:SSL23_GET_SERVER_HELLO:tlsv1警報協議版本

下載新版本並運行相同的克隆命令后,它便可以正常工作。

突然間,我也遇到了這個問題,我已經設置了 ssh 密鑰並且它工作正常,但我仍然重新生成 ssh 密鑰,設置它們並將私鑰添加到 ssh-agent 作為身份只是很失望。 然后我意識到我的機器上發生的唯一變化是通過自動軟件更新安裝了另一個版本的 GIT。 我卸載並安裝了以前版本的 GIT,它現在就像魅力一樣。

暫無
暫無

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

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