当我克隆一个存储库时,我一直有点“忍受”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.

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


当前回答

加上上面的答案。 为了git能够使用ssh-agent,不得不在Windows上再做一步。

必须在powershell中执行以下命令来更新环境变量:

PS> [Environment]::SetEnvironmentVariable("GIT_SSH", "$((Get-Command ssh).Source)", [System.EnvironmentVariableTarget]::User)

重启VSCode, Powershell或任何你正在使用的终端来激活env变量。

完整的说明可以在这里(https://snowdrift.tech/cli/ssh/git/tutorials/2019/01/31/using-ssh-agent-git-windows.html)找到。

其他回答

如果你正在为git使用ssh url,当提示输入ssh密码时,输入用户名“git”和密码作为系统的登录密码

加上上面的答案。 为了git能够使用ssh-agent,不得不在Windows上再做一步。

必须在powershell中执行以下命令来更新环境变量:

PS> [Environment]::SetEnvironmentVariable("GIT_SSH", "$((Get-Command ssh).Source)", [System.EnvironmentVariableTarget]::User)

重启VSCode, Powershell或任何你正在使用的终端来激活env变量。

完整的说明可以在这里(https://snowdrift.tech/cli/ssh/git/tutorials/2019/01/31/using-ssh-agent-git-windows.html)找到。

对我有用的方法(windows 10)

从应用程序打开git-gui 帮助 显示ssh密钥 生成ssh密钥 将SSH密钥复制到git提供者

这样我们可以保证git客户端指向有效的ssh

添加没有钥匙串的身份

有时,您可能不希望密码短语存储在密钥链中,但又不想一次又一次地输入密码短语。

你可以这样做:

ssh-add ~/.ssh/id_rsa 

这将询问您的密码,输入它,它不会再问,直到您重新启动。

使用钥匙串添加身份

正如@dennis在评论中指出的那样,通过将密码保存在你的钥匙串中,你可以在添加这样的身份时使用——apple-use-keychain选项(Ubuntu的-k):

ssh-add --apple-use-keychain ~/.ssh/id_rsa

再一次,它将要求您输入密码,输入它,这一次它将不再要求您输入这个身份。

我必须执行:

eval `ssh-agent -s`
ssh-add

注意:每次重新启动后,您都必须再次执行此操作。如果你想避免它,那就把它写进你的"。bashrc"文件,位于C:\Users\<<USERNAME>>\。Bashrc在窗户上。它可能是隐藏的,所以请确保您可以看到隐藏的文件。

这里找到了解决方案。