【发布时间】:2021-12-16 06:05:03
【问题描述】:
情况:
现有用户/存储库/git 远程服务器,使用 git for windows 在新电脑上设置环境。
问题:
当我尝试在 git bash 中执行需要访问权限的基本 git 命令时,我收到提示:
git@gitlab.local's password:
根据我的经验,这意味着使用 RSA 密钥的 SSH 连接设置不正确。
我已经采取的步骤:
- 我确保在 git config 中正确设置了 user.name 和 user.email 并使用“git config --global --list”验证
- 我尝试重新生成 ssh_key 运行并添加到 gitlab。然后将其保存到另一个文件(不是默认的 id_rsa)。然后
使用步骤添加:
eval "$(ssh-agent -s)"&ssh-add ~/.ssh/id_rsa_new
哪个成功了“添加身份:”
手动添加凭据在安全方面存在问题,所以我宁愿不去那里。
我已经多次完成此设置过程,但对导致 SSH 连接无法无缝工作的原因感到困惑。
【问题讨论】:
-
通常的诊断是运行
ssh -T或ssh -Tv(添加更多的“v”字母以获得更详细的信息):ssh -T git@github.local将在不涉及 Git 的情况下测试 ssh 连接。如果这按您想要的方式工作,那么在 Windows 上,通常的问题是 Git 和 Windows 都带有 他们自己的 ssh,并且一个设置正确而另一个设置不正确,所以说服 Git使用正确的 ssh 和/或设置另一个。 -
如果它没有按您希望的方式工作(例如,如果它在错误的系统上要求密码或密码短语,尽管代理正在运行)您可以在没有 Git 的情况下从那里进行调试。
-
听起来你可能有多个 OpenSSH / bash / git 安装,正如 torek 提到的那样。你是如何访问 git 的?你是如何运行
eval "$(ssh-agent -s)"&ssh-add ~/.ssh/id_rsa_new你可能想知道:(1)你的 git 二进制文件在哪里(where git)和(2)你正在执行的ssh-agent在哪里(which ssh-agent)。你也把你的密钥上传到 GitLab 了吗?我推荐following the docs慎重 -
根据@torek 的建议,我使用
ssh -Tv git@gitlab.local来查看使用ssh 密钥失败的原因。错误是:debug1: send_pubkey_test: no mutual signature algorithm。这在我的情况下通过添加:PubkeyAcceptedKeyTypes +ssh-rsa到 git 配置文件来解决。