我不明白为什么 git 要求我连接到打开的 ssh。我重新安装了几次 git 并进行了其他操作,但一无所获。我也搜索了互联网,没有人遇到同样的问题。
其他人可以进入我的项目并推送库存,但我不能,因为开放了 ssh。
答案1
尽管窗口有标题栏,但如果您查看 URL,这实际上是在要求输入 HTTPS 用户名,而不是 SSH 用户名。这是因为 Git 正在使用该ssh-askpass
命令提示输入 HTTPS 的用户名和密码。
Git for Windows 默认配置了此行为,因为 Windows 上的许多用户使用图形程序来调用 Git,而不是终端。因此,对于许多用户来说,尝试在终端上提示会默默失败,并且不会显示有用的错误消息。 ssh-askpass
已随 Git for Windows 一起提供,可用于以图形方式提示,而无需对 Git 进行任何修改。
如果您希望在终端上提示,您可以取消设置GIT_ASKPASS
环境变量,这样 Git 就会在终端上提示您。此外,如果您使用凭证管理器,Git 会为您存储用户名和密码,这样您就无需再次输入,而且根本不会提示您。
答案2
HTTPS:
如果你使用 https,你可以尝试“git config credential.helper store”
https://git-scm.com/docs/git-credential-store
使用 https 默认会提示用户凭证。
https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html#git-authentication-methods
SSH:
对于 SSH,您可能需要在服务器端向您的帐户添加 ssh 密钥。
如果您没有密钥对,则必须创建一个。(如果有,请注意不要覆盖现有的密钥对)。
如果您使用 GitLab 或 GitHub,您可以在这里找到指南。GitLab
:
https://docs.gitlab.com/ee/ssh/README.html#adding-an-ssh-key-to-your-gitlab-account