問(wèn)題:
進(jìn)行g(shù)ithub操作時(shí)出現(xiàn)了下面的錯(cuò)誤,如何解決
?
排查思路:
ssh: connect to host github.com port 22: Connection refused?
這個(gè)錯(cuò)誤提示的是連接github.com
的22端口被拒絕了??梢院?jiǎn)單理解為此門不通,既然這個(gè)端口號(hào)走不通,那換一個(gè)端口號(hào)試試看。
解決方法一:
網(wǎng)上大多的解決辦法有兩種,第一種就是修改訪問(wèn)時(shí)要走的端口號(hào)——前門不通走后門
根據(jù)我個(gè)人的情況,第一次遇到這個(gè)報(bào)錯(cuò)時(shí),.ssh文件夾里是沒(méi)有config文件的,可以直接在該文件夾下新建config.txt文件,將下面的命令直接粘貼進(jìn)去,保存退出后,把此文件的.txt后綴刪除(重命名)
Host github.com
Hostname ssh.github.com
Port 443
修改完成后,在Git Bash 里輸入:ssh -T git@github.com? 來(lái)測(cè)試是否能連接上(切記一切配置改完先測(cè)試,避免無(wú)用浪費(fèi))
如果回車后出現(xiàn)以下回復(fù):
?它翻譯過(guò)來(lái)意思是:
無(wú)法確定主機(jī)“[ssh.github.com]:443 ([20.205.243.160]:443)”的真實(shí)性。
ED25519 密鑰指紋是 SHA256:巴拉巴拉巴拉阿巴阿巴啊巴
此密鑰以任何其他名稱未知
是否確實(shí)要繼續(xù)連接(是/否/[指紋])?
?密鑰沒(méi)名字是我在生成密鑰時(shí)沒(méi)指定名字方便gitee和GitHub公用同一個(gè)公鑰,如果有人已經(jīng)指定了具體名字中間的提示應(yīng)該不會(huì)出現(xiàn)。它提示你是否繼續(xù)鏈接時(shí)填yes回車就行,之后就會(huì)出現(xiàn)這樣的提示:
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
?
出現(xiàn)這樣的提示說(shuō)明連接成功了,不放心可以再用ssh -T git@github.com測(cè)試一下,還會(huì)出現(xiàn)上面的successfully提示。
ps: 如何找到.ssh文件夾
?
一般.ssh文件夾都在C盤的個(gè)人用戶文件夾下,不同牌子的電腦默認(rèn)路徑都會(huì)有微小的不同,這里僅展示dell電腦的搜索路徑。
如果改了443端口號(hào)依然走不通(ssh: connect to host github.com port 443: Connection refused
),那你可能需要下面的這個(gè)方法
解決方法二:
這個(gè)方案有效的前提是:執(zhí)行命令ssh -T -p 443 git@ssh.github.com
后不再提示connection refused
,所以要嘗試這個(gè)方案的小伙伴先執(zhí)行這條命令測(cè)試下
使用https協(xié)議,不要使用ssh協(xié)議
在你的GitHub的本地repo目錄,執(zhí)行如下命令:
$ git config --local -e
然后把里面的url配置項(xiàng)從git格式
url = git@github.com:username/repo.git
修改為https格式
url = https://github.com/username/repo.git
這個(gè)其實(shí)修改的是repo根目錄下的./git/config
文件。
如果還不行,再看下面的方式(收集自網(wǎng)絡(luò))
解決方法三:
既然和GitHub建立ssh連接的時(shí)候提示connection refused
,那我們就詳細(xì)看看建立ssh連接的過(guò)程中發(fā)生了什么,可以使用ssh -v
命令,-v
表示verbose,會(huì)打出詳細(xì)日志。
$ ssh -vT git@github.com
OpenSSH_9.0p1, OpenSSL 1.1.1o 3 May 2022
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to github.com [::1] port 22.
debug1: connect to address ::1 port 22: Connection refused
debug1: Connecting to github.com [127.0.0.1] port 22.
debug1: connect to address 127.0.0.1 port 22: Connection refused
ssh: connect to host github.com port 22: Connection refused
從上面的信息馬上就發(fā)現(xiàn)了詭異的地方,連接http://github.com的地址居然是::1
和127.0.0.1
。前者是IPV6的localhost地址,后者是IPV4的localhost地址。
到這里問(wèn)題就很明確了,是DNS解析出問(wèn)題了,導(dǎo)致http://github.com域名被解析成了localhost的ip地址,就自然連不上GitHub了。
Windows下執(zhí)行ipconfig /flushdns
?清楚DNS緩存后也沒(méi)用,最后修改hosts文件,增加一條github.com的域名映射搞定。
140.82.113.4 github.com
查找http://github.com的ip地址可以使用https://www.ipaddress.com/來(lái)查詢,也可以使用nslookup
命令
nslookup github.com 8.8.8.8
nslookup
是域名解析工具,8.8.8.8
是Google的DNS服務(wù)器地址。直接使用
nslookup github.com
就會(huì)使用本機(jī)已經(jīng)設(shè)置好的DNS服務(wù)器進(jìn)行域名解析,ipconfig /all
可以查看本機(jī)DNS服務(wù)器地址。
這個(gè)問(wèn)題其實(shí)就是DNS解析被污染了,有2種可能:
- DNS解析被運(yùn)營(yíng)商劫持了
- 使用了科學(xué)上網(wǎng)工具
ps:域名映射怎么添加文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-633417.html
搜索Windows host域名映射配置文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-633417.html
到了這里,關(guān)于如何解決:ssh: connect to host github.com port 22: Connection refused的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!