我生成了一个没有密码的SSH密钥对,并将公钥添加到GitHub。
与
user@dev:/var/www/project# ssh -T git@github.com
Hi User! You've successfully authenticated, but GitHub does not provide shell access.
当我重命名密钥时,它失败了。
但当我想要推送更改时,它仍然要求我输入用户名和密码组合。
有没有不用密码就能推的方法?
我生成了一个没有密码的SSH密钥对,并将公钥添加到GitHub。
与
user@dev:/var/www/project# ssh -T git@github.com
Hi User! You've successfully authenticated, but GitHub does not provide shell access.
当我重命名密钥时,它失败了。
但当我想要推送更改时,它仍然要求我输入用户名和密码组合。
有没有不用密码就能推的方法?
当前回答
此外,对于gist,似乎必须省略用户名
git remote set-url origin git@gist.github.com:<Project code>
其他回答
使用命令行:
输入ls -al ~/。查看是否存在现有的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]
像往常一样,创建一个SSH密钥并将公钥粘贴到GitHub。将私钥添加到ssh-agent。(我猜你就是这么做的。)
要检查一切是否正确,使用ssh -T git@github.com
接下来,不要忘记修改远端点,如下所示:
git remote set-url origin git@github.com:username/your-repository.git
如果它要求您输入用户名和密码,那么您的源远程服务器将指向HTTPS URL,而不是SSH URL。
改为ssh。
例如,像Git这样的GitHub项目将有一个HTTPS URL:
https://github.com/<Username>/<Project>.git
SSH的:
git@github.com:<Username>/<Project>.git
你可以:
git remote set-url origin git@github.com:<Username>/<Project>.git
来更改URL。
与前面提到的其他用户一样,您必须将它从使用HTTPS转换为使用SSH。我没有看到一个端到端的解决方案。设置ssh密钥后,执行(在您的本地机器上):
$ git remote set-url origin git@github.com:username/your_repo.git # Convert HTTPS -> SSH
$ ssh-add ~/.ssh/id_rsa_github # add private github ssh key ssh-agent (assuming you have it already running)
$ git push
此外,对于gist,似乎必须省略用户名
git remote set-url origin git@gist.github.com:<Project code>