当前位置: 首页 > 知识库问答 >
问题:

Git每次都要求SSH密码,而SSH从代理获取它

微生阳平
2023-03-14

我在Windows 10专业版计算机上尝试进行git拉取,而无需每次都输入我的SSH密码。密钥对已生成,带有密码,并且公钥已成功添加到我的 GitLab 帐户中。

在“服务”GUI中,我可以看到“OpenSSH身份验证代理”正在运行,在PowerShell中,如果我这样做Get-Service ssh-agent,我会看到以下内容,确认相同的信息:

Status   Name               DisplayName
------   ----               -----------
Running  ssh-agent          OpenSSH Authentication Agent

当我执行 ssh -T git@gitlab.com 时,我收到“欢迎使用 Gitlab”消息,指示成功的 ssh 连接,没有密码输入。

我运行了ssh代理并添加了标识(通过运行svn add,输入密码短语,并获得成功消息)。运行“ssh-Tgit@gitlab.com“在同一终端中成功,无需密码短语。

在终端中,我可以运行git命令(例如git推送git拉取),每次我都会收到密码提示,操作成功。

git远程源url是此处描述格式的SSH url;它不是HTTPS URL。第二个投票最多的答案和下面关于同一问题的另一个答案表明,一旦能够在没有密码短语的情况下执行ssh命令,git命令也可以在没有密码词组的情况下工作,这不是我在这里看到的。

我的~./ssh/config文件条目是:

User git
Hostname gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_id_ed25519
AddKeysToAgent yes

如何让git使用存储在ssh-agent中的密码短语,而不是每次都提示?

共有1个答案

方祺
2023-03-14

首先,按照以下说明(此处也有说明)将GIT_SSH环境变量设置为C:\Windows\System32\OpenSSH\SSH。exe,这是解决方案的核心。

在新的控制台中,您应该能够< code>git push和< code>git pull等。没有密码,GUI同步选项也不会出错。

 类似资料:
  • 我正在使用Windows 7。我的公司在我们自己的git服务器上存储了一些回购协议。最近我还不得不使用GitHub,但自从我访问了GitHub上的回购协议之后,git bash的表现就非常不稳定。 归根结底,每次我打开git bash,如果我尝试拉,我会得到:“错误:无法跨越git:没有这样的文件或目录。” 我的git版本是2.18.0。窗户。1. 我发现每次启动git-bash时都必须手动执行此

  • 切换到一台新电脑后,我不得不再次安装SmartGIT for Windows,现在尝试克隆我的fedorahosted。组织存储库。密钥存储在C:/User/myusername/中。ssh,SmartGIT提供了一个干净的安装,克隆我的存储库的URL是正确的-不幸的是,SmartGIT没有要求密钥,它只是尝试连接到fedorahosted。但是当然失败了。 所以这里可能出了什么问题?我必须把ss

  • 我按照github教程中的指示创建了键,在github中注册了它们,并尝试显式地使用ssh-agent--但是每次我尝试进行拉或推操作时,git都会继续向我询问密码短语。 原因可能是什么?

  • 问题内容: 每次我尝试将任何内容推送到GitHub时,它都会询问我地址,然后它要求密码。有没有办法使它自动化? 我正在使用Linux Ubuntu。 问题答案: 您可以用来记住密码(通常,Gnome会自动为您运行密码)。 从现在开始,在您运行此程序的终端中,您的密码将被记住。 理想情况下,它会自动运行,因此在gnome中运行的所有shell都可以工作。查看Gnome Keyring 。

  • 问题内容: 我正在尝试使用GitHub托管存储库(使用Jenkins Git插件)启动Jenkins并使其运行。该存储库具有多个git子模块,因此我不确定我是否想尝试和管理多个部署密钥。 我的个人GitHub用户帐户是我希望与Jenkins进行的每个项目的合作者,因此我在其中生成了一个SSH密钥并将其添加到我的个人GitHub帐户中。 但是,当我尝试将存储库URL添加到我的Jenkins项目配置中

  • 我正在尝试让Jenkins启动并运行一个GitHub托管的存储库(使用Jenkins Git插件)。存储库有多个git子模块,所以我不确定是否要尝试管理多个部署密钥。 我的个人GitHub用户帐户是我希望与Jenkins合作的每个项目的合作者,因此我在并将其添加到我的个人GitHub帐户。 但是,当我尝试将存储库URL添加到我的Jenkins项目配置时,我会得到: 同样,当我计划构建时,我得到: