当我克隆一个存储库时,我一直有点“忍受”Github总是问我的用户名和密码。我想绕过这一步,因为这是我的工作流中的一个烦恼。

我尝试使用本指南设置SSH密钥(我成功地做到了)。https://help.github.com/articles/generating-ssh-keys,我成功了。

我的问题是,当克隆一个存储库(使用SSH)时,我仍然被要求输入我的github密码和密码短语。我的理解是,在我设置了这个SSH密钥之后,我就不再需要这样做了。

我不知道该问什么,所以我就说说我的目标吧。

我希望能够克隆存储库,而不必一直把我的Github信息。

我的SSH密钥丢失了什么?如果有人能提供一些指导或资源,我会很感激,因为当涉及到GitHub中的SSH身份验证时,我总是感到有点失落。

据我所知,这是一个测试事情是否正常工作的命令,下面是来自我的控制台的输出:

~ $ ssh -T git@github.com
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.

当我输入密码时,应该先失败吗?然后,当我输入密码时,它就通过了。


当前回答

我已经设置了密码,但由于某种原因,它不再识别它了。因此,我只是再次使用ssh-add -K将身份文件添加到我的钥匙链中,它不再要求我输入密码。

其他回答

这对我来说很管用:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"

在LinuxMint/Ubuntu工作

执行以下步骤

步骤1:

去文件=> /.ssh/config

将以下行保存到文件中

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /home/apple/myssh-privatekey
    AddKeysToAgent yes

不要忘记添加这一行AddKeysToAgent yes

步骤2:

打开终端并将密钥集添加到ssh-add

$ ssh-add -k /home/apple/myssh-privatekey

提供密码短语。

您可以删除密钥的密码短语

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

或者你可以逃跑

$ ssh-keygen -p

您将得到输入keyfile的提示。默认为~/。Ssh /id_rsa so按enter键

您将被提示输入当前的密码短语,请输入。

然后会出现输入新口令的提示,按enter键

TL;DR需要使用ssh agent。为此,打开终端&在推到git之前,执行 ssh-add 在提示时输入您的密码。

点击这里查看StackExchange的原始答案

如果你使用HTTPs url,它总是会询问你的用户名/密码。这个问题可以用@Manavalan Gajapathy的评论来解决(复制这里):

看这个github文档转换远程的URL从https到ssh。要检查remote的URL是ssh还是https,请使用git remote -v。从https切换到ssh:

git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

如果您在克隆/设置远程时正确使用SSH:请确保您有一个SSH -agent来记住您的密码(参见@Komu的回答)。这样,每个终端会话只需要输入一次密码。

如果它仍然太烦人,那么简单地设置一个ssh-key没有密码短语。