我生成了一个没有密码的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.
当我重命名密钥时,它失败了。
但当我想要推送更改时,它仍然要求我输入用户名和密码组合。
有没有不用密码就能推的方法?
当前回答
使用命令行:
输入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]
其他回答
与前面提到的其他用户一样,您必须将它从使用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
您必须使用SSH版本,而不是HTTPS版本。当您从存储库克隆时,请使用SSH版本复制链接,因为SSH易于使用并解决了访问中的所有问题。您可以为您输入到您的帐户的每个SSH设置访问权限(如推,拉,克隆等…)
这里有一个链接,它说明了我们为什么需要SSH以及如何使用它:一步一步地
Git生成SSH密钥
使用SSH时,必须使用$ git remote add origin git@github.com:USERNAME/REPOSITORY.git,而不是git remote add origin remote_repository_URL。 你可以用$ git remote -v检查它,如果你看到下面的两行格式,它就能正常工作:
origin git@github.com:username/repo-name.git (fetch)
origin git@github.com:username/repo-name.git (push)
使用命令行:
输入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]
你做的一切都好,但git仍然通过密码询问,这对我有用,在你当前项目的路径中执行下一个突击队:
~ ssh-add -K ~/.ssh/id_rsaYourIdRsa
将您的SSH私钥添加到SSH -agent,并将您的密码短语存储在keychain中。如果您使用不同的名称创建了密钥,或者如果您正在添加具有不同名称的现有密钥,请将命令中的id_rsaYourIdRsa替换为您的私有密钥文件的名称。