我遵循了GitHub教程中的所有内容:https://help.github.com/articles/generating-ssh-keys
我在我的存储库目录中完成了所有命令。 我成功完成了教程的结束并得到了消息:“您好用户名!您已成功通过身份验证,但GitHub不提供shell访问权限。”
然而,当我尝试执行诸如推送仍然请求我的用户名和密码之类的事情时。
答案 0 :(得分:118)
通过remote
检查您的git remote -v
。
https://
网址始终会要求输入密码。有关this question中的更多信息。
无密码git访问的最简单解决方案是使用git remote set-url
命令并为现有仓库设置 SSH 网址。
在您的情况下,git remote set-url origin git@github.com:name/repo
。
然后,您应该能够git push origin <branch>
而无需输入密码。
答案 1 :(得分:15)
很好你已经正确设置了你的git ssh现在你需要用ssh重新克隆git存储库,例如以前你会做过这样的事情:
git clone https://github.com/dangrossman/bootstrap-daterangepicker.git
这是一个https克隆,现在您需要使用ssh克隆
git clone git@github.com:dangrossman/bootstrap-daterangepicker.git
您可以在github帐户中找到与您找到https链接相同位置的ssh链接。 在此之后,您可以轻松推送,无需密码提示。
它可能会询问您的ssh解锁密码。然后,您需要输入在创建ssh密钥期间提供的paraphase。如果你把它留空,可能不会提示它。
答案 2 :(得分:0)
我可以通过从基本存储库目录中打开.git/config
并更改远程URL来停止用户名和密码提示。
例如:
[remote "origin"]
url = https://github.com/username/my-repo.git
应更改为:
[remote "origin"]
url = git@github.com:username/my-repo.git
答案 3 :(得分:0)
我尝试将答案标记为正确,但无法使其正常工作。相反,这对我有用git remote set-url origin ssh://git@github.com/username/reponame