我生成了一个没有密码的密钥对,并将公钥添加到github.与...连接
user@dev:/var/www/project# ssh -T git@github.com
Hi User! You've successfully authenticated, but GitHub does not provide shell access.
Run Code Online (Sandbox Code Playgroud)
是成功的,当我重命名密钥时,它失败了.但是,当我想推动我的更改时,仍然会问我的用户名/密码组合.
有没有办法没有密码推?
man*_*lds 394
如果它要求您输入用户名和密码,则您的原始远程指针指向https网址而不是ssh网址.
将其更改为ssh.
例如,像Git这样的github项目将具有https url
https://github.com/<Username>/<Project>.git
Run Code Online (Sandbox Code Playgroud)
和ssh一:
git@github.com:<Username>/<Project>.git
Run Code Online (Sandbox Code Playgroud)
你可以做:
git remote set-url origin git@github.com:<Username>/<Project>.git
Run Code Online (Sandbox Code Playgroud)
改变网址.
小智 9
此外,对于要点,似乎你必须省略用户名
git remote set-url origin git@gist.github.com:<Project code>
Run Code Online (Sandbox Code Playgroud)
如果您确实在使用SSH URL,但是在git push时仍然要求输入用户名和密码:
git remote set-url origin git@github.com:<Username>/<Project>.git
Run Code Online (Sandbox Code Playgroud)
您应该尝试使用以下方法进行故障排除:
ssh -vT git@github.com
Run Code Online (Sandbox Code Playgroud)
下面是一个示例输出:
...
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).
Run Code Online (Sandbox Code Playgroud)
实际上,我之前已经将公共密钥添加到了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
Run Code Online (Sandbox Code Playgroud)
现在,当我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.
...
Run Code Online (Sandbox Code Playgroud)
现在,我无需输入用户名和密码即可推送到GitHub :-)
小智 6
像往常一样,创建一个 SSH 密钥并将公钥粘贴到 GitHub。将私钥添加到 ssh-agent。(我假设这就是你所做的。)
要检查一切是否正确,请使用 ssh -T git@github.com
接下来不要忘记修改远程点如下:
git remote set-url origin git@github.com:username/your-repository.git
Run Code Online (Sandbox Code Playgroud)
你必须使用SSH版本不是HTTPS.当你从库中克隆,复制与链接SSH版本,因为SSH易于使用,并解决了与access.You所有问题都可以设置为每SSH您输入到您的帐户的访问(如推,拉,克隆等...)
这是一个链接,说明为什么我们需要ssh以及如何使用它:一步一步
要使用 SSH,您必须使用$ git remote add origin git@github.com:USERNAME/REPOSITORY.git而不是git remote add origin remote_repository_URL. 你可以用 来检查$ git remote -v,如果你看到下面格式的 2 行,它就会正常工作:
origin git@github.com:username/repo-name.git (fetch)
origin git@github.com:username/repo-name.git (push)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109295 次 |
| 最近记录: |