我生成了一个没有密码的密钥对,并将公钥添加到github。 与
连接user@dev:/var/www/project# ssh -T git@github.com
Hi User! You've successfully authenticated, but GitHub does not provide shell access.
成功,当我重命名密钥时,它失败了。 但是,当我想推送我的更改时,它仍然会询问我的用户名/密码组合。
有没有办法在没有密码的情况下推送?
答案 0 :(得分:366)
如果它要求您提供用户名和密码,则您的原始远程指针指向https网址而不是ssh网址。
将其更改为ssh。
例如,像Git这样的github项目将有https url
https://github.com/<Username>/<Project>.git
和ssh one:
git@github.com:<Username>/<Project>.git
你可以这样做:
git remote set-url origin git@github.com:<Username>/<Project>.git
更改网址。
答案 1 :(得分:9)
此外,对于要点,您似乎必须省略用户名
git remote set-url origin git@gist.github.com:<Project code>
答案 2 :(得分:5)
您必须使用 SSH 版本而非 HTTPS 。从存储库中克隆时,请使用 SSH 版本复制该链接,因为SSH很容易使用并解决所有访问问题。您可以为您输入帐户的每个SSH设置访问权限(如推,拉,克隆等......)
这是一个链接,说明为什么我们需要ssh以及如何使用它:一步一步
答案 3 :(得分:5)
如果你确实使用了SSH URL,但在git推送时仍然要求输入用户名和密码:
git remote set-url origin git@github.com:<Username>/<Project>.git
您应尝试使用以下方法进行问题排查:
ssh -vT git@github.com
以下是一段示例输出:
...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_dsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ecdsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).
我之前已经将公钥添加到GitHub,我也在本地拥有私钥。但是,我的私钥名称为/c/Users/Yuci/.ssh/github_rsa
。
根据示例输出,Git正在尝试/c/Users/Yuci/.ssh/id_rsa
,我没有。因此,我可以简单地将github_rsa
复制到同一目录中的id_rsa
。
cp /c/Users/Yuci/.ssh/github_rsa /c/Users/Yuci/.ssh/id_rsa
现在当我再次运行ssh -vT git@github.com
时,我有:
...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Authentication succeeded (publickey).
...
Hi <my username>! You've successfully authenticated, but GitHub does not provide shell access.
...
现在我可以在没有被要求输入用户名和密码的情况下推送到GitHub: - )
答案 4 :(得分:0)
像往常一样,创建一个SSH密钥并将公共密钥粘贴到Github。将私钥添加到ssh-agent。 (我认为这就是您所做的)。
要检查所有内容是否正确,请使用ssh -T git@github.com
下一步不要忘记按如下方式修改远程点
git remote set-url origin git@github.com:username/your-repository.git
答案 5 :(得分:-3)
使用命令行:
输入ls -al ~/.ssh
以查看是否存在现有SSH密钥
在终端显示:没有目录存在
然后生成新的SSH密钥
第1步。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
第2步。
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): <here is file name and enter the key>
第3步。
Enter passphrase (empty for no passphrase): [Type a password]
Enter same passphrase again: [Type password again]