解决git push一直提示输入用户名及密码、fatal: Could not read from remote repository的问题

问题描述:

在实操中,git push代码到github上一直提示输入用户名及密码,并且跳出的输入框输入用户名和密码后,报错找不到远程仓库

实际解决中,发现我环境有两个问题解决:

  • git push一直提示输入用户名及密码
  • “fatal: Could not read from remote repository”

问题1

原因:

是因为git使用https协议,每次pull, push都要输入密码,而如果采用ssh协议
(当使用了http的方式clone代码到本地,相应的,也是使用http的方式将代码push到服务器,就出现这个问题)

解决方式:

解决办法很简单,将http方式改为ssh方式即可;先移除旧的http的origin,在添加新的ssh方式的origin

改动完之后直接执行git push是无法推送代码的,需要设置一下上游要跟踪的分支,与此同时会自动执行一次git push命令,此时已经不用要求输入用户名及密码啦!
git push --set-upstream origin master
但在这里碰到了我的问题2

问题2

原因:

出现这错误一般是以下两种原因:

  • 客户端与服务端未生成 ssh key
  • 客户端与服务端的ssh key不匹配
    我的问题是不匹配,需要重新生成一次ssh key ,并重新配置一下GitHub账户即可

解决方式:

  1. 生成新的SSH key
       如果是客户端与服务端未生成ssh key,那么直接使用:ssh-keygen -t rsa -C "youremail@example.com" 生成新的rsa密钥即可。
       如果是客户端与服务端的ssh key 不匹配,此时需要先将本地生成的 id_rsa以及id_rsa.pub这两个文件【一般在用户名下的.ssh文件夹下】删除掉,然后再使用上述指令生成新的rsa密钥;
    上面命令的目的是为了让本地机器ssh登录远程机器上的GitHub账户无需输入密码。

  2. 将SSH key 添加到 ssh-agent
       使用 ssh-add ~/.ssh/id_rsa 将产生的新ssh key添加到ssh-agent中:

但我出现“Could not open a connection to your authentication agent.”的错误,这个使用以下方式解决:
eval "$(ssh-agent -s)"
然后再次执行 ssh-add ~/.ssh/id_rsa 指令。

3. 将SSH key 添加到你的GitHub账户
  在账户选项中选择 “Settings”–>“SSH and GPG keys”–>“New SSH key”,然后打开之前新生成的id_rsa.pub文件,将密钥复制后填写到账户中【注意填写时的格式要求】
4. 验证key
  使用 ssh -T git@github.com 对ssh key 进行验证:

原文地址:https://www.cnblogs.com/testeremma/p/14362512.html