目录
摘要:git push到github,提示报错如下:根据文档发现是身份验证问题,本文围绕SSH协议来和github链接,详情如下。
提示authentication身份验证失败,通过用户名和密码校验的方式已被删除了。来看看官网有很多方法处理,通过https克隆的项目确实是会遇到这种问题,最下边的解决方式是通过SSH重新获取身份验证,一起来看看这种方式如何解决该问题。
1、了解什么是SSH
点击上图中“Using SSH over the HTTPS port”,来看看跳转后的身份验证页面,先点击“About SSH”,了解什么是SSH。
SSH协议,可以链接到远端服务器和服务,并进行身份验证,用SSH key,在每次访问时,不需要提供用户名和个人token。
2、在本地生成SSH key
点击该网页左侧目录“Generate new SSH key”,根据提示,生成SSH key到本地,查看本地c盘如果有之前的需要删除一下。
3、本地SSH key与github账户建立链接
可根据提示,点击本网页的“Add a new SSH key”,添加一个新的SSH key,删除之前的key,将刚才生成的c盘下的.ssh目录下的pub文件用编辑器或者IDE打开复制,填写到如下的key中。
4、更改远端地址为SSH协议
这样,通过git bash 命令行生成的SSH key就和github进行了链接,因为我们通过这样配置的SSH协议,还需要将远端的地址改为ssh,可参考About remote repositories - GitHub Docs
因为官网提示通过HTTPS,克隆,拉取,推送代码就是会弹出输入用户名密码的。修改远端地址如下:到此,我再来试一下推送代码,重现建立链接,代码就推送成功了。
总结:当从github克隆,提交,推送代码时,远端地址有几种方式,可以更换远端地址。当遇到HTTPS这种需要输入用户名密码时,可以更换为SSH协议来链接,更换SSH远端地址,来解决问题。官网还有其他的方案,可以尝试修改。
本文是为了了解SSH,深入了解SSH协议和github的关系,了解authenticaion等问题,梳理根据官网解决问题的过程。
欢迎有问题的小伙伴,在评论区留言讨论,一起学习。