Linux下git访问github遇问题大全及解决方案(太多了,慢慢更新)

目录

目录

1.  ssh -T [email protected]配置了公钥依旧提示[email protected]‘s password: Permission denied, please try again. 

 2. ssh: connect to host github.com port 22: Connection refused

 3. git报错Failed to connect to127.0.0.1 port 1080:Connection refused

4.  git push时卡住的解决方法(长时间不报错也不自动退出)_相关技巧_网络编程 - 编程客栈

5. fatal: The current branch master has no upstream branch之解决方法_小智解说的博客-CSDN博客

6. https://www.cnblogs.com/princesong/p/9885857.html

7. 安全验证 - 知乎

8. 完美解决remote: Support for password authentication was removed on August 13, 2021. Please use a perso | LongSheng

扫描二维码关注公众号,回复: 15289674 查看本文章



        遇到了很多坑人的问题,在网上查阅了大量资料总结下来了,有关的简化内容如下,部分资料连接会放在每一项的下方,希望能帮到跟我一样痛苦的有缘人。

        提一嘴,按照这个博主大大的方法来使用git访问Github基本是没什么问题的:

Ubuntu上使用GitHub的步骤_xyyshh的博客-CSDN博客_github ubuntu

        接下来就是遇到的问题及解决方法了:

1.  ssh -T [email protected]配置了公钥依旧提示[email protected]‘s password: Permission denied, please try again. 

        用 ssh -Tv [email protected] 命令去测试链接并且打印日志,检查后发现没有什么问题的话可以看看是不是防火墙的问题(懒得看的话也可以直接按下边步骤来试试水),见下方: 

输入这个命令测试一下,如果不再报错,就很有可能是防火墙的问题

ssh -T -p 443 [email protected]

打开自己.ssh文件夹中的config文件,在底端添加以下内容,如果自己的.ssh文件夹中没有找到该文件,就自己在.ssh文件夹中新建一个。

Host github.com
Hostname ssh.github.com
Port 443
User git

再试一下ssh -T [email protected],多半就ok了。

具体请看这个官方文档 Using SSH over the HTTPS port - GitHub Docs 

一个博主大大的连接:github 配置了公钥依旧提示[email protected]‘s password: Permission denied, please try again. 的解决办法_XeonYu的博客-CSDN博客

 2. ssh: connect to host github.com port 22: Connection refused

方法:

(1)使用Github的443端口

        22端口可能被防火墙屏蔽了,可以尝试连接GitHub的443端口。这个解决方法和问题1是一样的,具体请看问题1的步骤。

        再强调一下,这个方案有效的前提是:执行命令ssh -T -p 443 [email protected]后不再提示connection refused,所以要尝试这个方案的小伙伴先执行这条命令测试下。

(2)使用https协议,不要使用ssh协议

在你的GitHub的本地repo目录,执行:

$ git config --local -e

然后把里边的url配置项从git格式修改为https格式

把 url = [email protected]:username/repo.git

改成 url = https://github.com/username/repo.git

 这个方法实际上修改的是repo跟目录下的 ./git/config 文件

(3)修改DNS

上述方法都行不通的话,还有一种(个人也是这种方法救了老命的):

使用ssh -v命令,打出详细日志。

发现连接http://github.com的地址居然是::1127.0.0.1。前者是IPV6的localhost地址,后者是IPV4的localhost地址。 至此问题就很明确了,是DNS解析出问题了,导致http://github.com域名被解析成了localhost的ip地址,就自然连不上GitHub了。

这个问题是DNS解析被污染了,有2种可能:

  • DNS解析被运营商劫持了
  • 使用了科学上网工具

解决方法:

①清楚DNS缓存

②修改hosts文件,在底部增加一条github.com的域名映射:

vim  /etc/hosts   //编辑该文件

在hosts文件底部加上 140.82.113.4 github.com      //查找这个ip地址的方法见下

按下Esc,再输入 :wq! 保存退出

如果权限不够:

sudo su拥有root权限,再进行上述操作

操作完后终端输入exit退出

查找github.com的ip地址可以使用https://www.ipaddress.com/来查询,也可以使用nslookup命令

nslookup  github.com 8.8.8.8     //8.8.8.8是Google的DNS服务器地址,如果不加的话就会使用本机已经设置好的DNS服务器进行域名解析。
ipconfig /all可以查看本机DNS服务器地址。

 3. git报错Failed to connect to127.0.0.1 port 1080:Connection refused

解决方法:

(1)解除代理

        网上很多人都是用这个方法解决的,但是这个方法在我这里没啥用,有点懒,这里就不放出来了,需要的家人请自行上网查阅。

(2)修改 .gitconfig 文件

进入用户的根目录

cd   或   cd ~

 修改 .gitconfig 的内容

vim .gitconfig

把那些http_proxy,ftp_proxy ,all_proxy, https_proxy ,no_proxy 中指向 127.0.0.1:1080的都删除。

按下Esc,再输入 :wq! 保存退出

        报拒绝连接的错误时,先判断是不是自己主机会有一些代理或者以前因为想要加速访问时设置的代理,如果有,先删除试试,如果还是这样,看看别人是不是可以连接,如果别人也连接不了,那估计可能就是git服务的问题了

4.  git push时卡住的解决方法(长时间不报错也不自动退出)_相关技巧_网络编程 - 编程客栈

5. fatal: The current branch master has no upstream branch之解决方法_小智解说的博客-CSDN博客

6. https://www.cnblogs.com/princesong/p/9885857.html

7. 安全验证 - 知乎

8. 完美解决remote: Support for password authentication was removed on August 13, 2021. Please use a perso | LongSheng

外加一个总结:安全验证 - 知乎

猜你喜欢

转载自blog.csdn.net/qq_51368339/article/details/127889467