新建了一個(gè)倉(cāng)庫(kù),想要執(zhí)行`git push -u origin main`時(shí),出現(xiàn)此錯(cuò)誤。
排查:
1. ping
ping github.com時(shí),沒(méi)有反應(yīng),超時(shí)。
(要么時(shí)github的問(wèn)題,要么就是我的機(jī)器連不上。)
2. 檢查github網(wǎng)站狀態(tài)
訪問(wèn)GitHub Status,顯示“All Systems Operational”。
(github沒(méi)問(wèn)題,機(jī)器的問(wèn)題。)
處理:
在網(wǎng)上找了找處理方法,一半是用代理,一半是改host。
因?yàn)槲沂窃诜?wù)器上,不知道怎么弄代理,就選擇改host。
方法參照:
github 訪問(wèn)ping不通的解決辦法-騰訊云開(kāi)發(fā)者社區(qū)-騰訊云 (tencent.com)
(大恩大德,沒(méi)齒難忘)
另注:
????????多數(shù)改host的方法說(shuō)的時(shí)自己查github的ip,但是我這邊查出來(lái)的ip(20.205.243.166),在/etc/hosts中添加了以下內(nèi)容后仍然無(wú)效,使用鏈接中的內(nèi)容是可行的(2024/1/20)。
20.205.243.166 github.com
20.205.243.166 github.com
Github連接(https/ssh):
按照上述方法處理后,不會(huì)再顯示Failed to connect to github.com port 443: Connection timed out。
但是當(dāng)使用https來(lái)push時(shí),會(huì)報(bào)錯(cuò):
gnutls_handshake() failed: The TLS connection was non-properly terminated.
使用ssh來(lái)push時(shí),會(huì)報(bào)錯(cuò):
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
處理:
最終采用ssh,需要配置ssh訪問(wèn)權(quán)限。
其實(shí)我配置過(guò),但是似乎因?yàn)椴恢刮乙粋€(gè)人在使用,所以從服務(wù)器連接github時(shí),不是用的我配置的ssh。
通過(guò)詢問(wèn)ChatGPT,最終通過(guò)配置 ~/.ssh/config 來(lái)解決:
如果在服務(wù)器上有多個(gè)人通過(guò) SSH 連接到 GitHub,你可以為每個(gè)用戶配置單獨(dú)的 SSH 密鑰。每個(gè)用戶都可以擁有自己的 SSH 密鑰對(duì),并將公鑰添加到他們 GitHub 帳戶中。
以下是基本的步驟:
為每個(gè)用戶生成 SSH 密鑰對(duì):
1. 在服務(wù)器上,每個(gè)用戶都執(zhí)行以下命令生成 SSH 密鑰對(duì)。確保他們輸入自己的電子郵件地址。
? ?
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
? ?這將生成 `id_rsa`(私鑰)和 `id_rsa.pub`(公鑰)文件。
2. 將每個(gè)用戶的公鑰(`id_rsa.pub` 文件的內(nèi)容)添加到他們 GitHub 帳戶的 SSH 密鑰中。
? ?- 用戶可以使用以下命令查看公鑰內(nèi)容:
cat ~/.ssh/id_rsa.pub
? ?- 復(fù)制輸出,然后將其添加到 [GitHub SSH 密鑰設(shè)置頁(yè)面]。
在服務(wù)器上設(shè)置 SSH 配置:
1. 在服務(wù)器上,你可以在每個(gè)用戶的 `~/.ssh/config` 文件中設(shè)置 GitHub 相關(guān)的配置。如果該文件不存在,可以創(chuàng)建它。
touch ~/.ssh/config
2. 編輯 `~/.ssh/config` 文件并添加以下內(nèi)容,替換 `<username>` 為實(shí)際的 GitHub 用戶名:
? ?Host github.com-<username> ? ? ?HostName github.com ? ? ?User git ? ? ?IdentityFile ~/.ssh/id_rsa
? ?你可以復(fù)制這個(gè)塊并為每個(gè)用戶更改 `<username>`。
使用 SSH URL 克隆和推送:
現(xiàn)在,每個(gè)用戶都可以使用他們的 SSH 密鑰對(duì)通過(guò) SSH 連接到 GitHub。在他們克隆或推送倉(cāng)庫(kù)時(shí),他們可以使用 SSH URL:
git clone git@github.com-<username>:username/repo.git
或者在已有的倉(cāng)庫(kù)中設(shè)置遠(yuǎn)程 URL:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-822382.html
git remote set-url origin git@github.com-<username>:username/repo.git
這樣就可以為每個(gè)用戶配置獨(dú)立的 SSH 密鑰對(duì),并確保他們之間不會(huì)發(fā)生沖突。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-822382.html
到了這里,關(guān)于GitHub連接超時(shí):Failed to connect to github.com port 443: Connection timed out的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!