推/拉后提示输入 ssh 密码
Posted
技术标签:
【中文标题】推/拉后提示输入 ssh 密码【英文标题】:prompted for ssh passphrase after ever push/pull 【发布时间】:2022-01-06 21:45:00 【问题描述】:我已经在DevOps stackexchange问过这个问题,因为我认为那里更合适,但是已经几天了,我没有得到回应,所以我求助于这里。
我正在使用个人 GitLab 帐户来熟悉它的来龙去脉。首先,我按照this primer 设置 ssh 密钥并将公共和私有 ED25519 密钥添加到 ~\.ssh
。我将公钥添加到我的 GitLab 帐户中。然后,使用glab
CLI,我能够设置一个存储库,我可以使用git
推送和提取该存储库。
不幸的是,git
仍然会在我每次尝试推送到存储库时提示我输入 SSH 密码。我尝试了以下方法:
ssh -T https://gitlab.com/my_username
已知主机条目对此行为没有任何明显影响。验证我可以连接引发以下错误:
ssh: 无法解析主机名https://gitlab.com/my_username
为什么git
每次推送时都要求我提供密码,我该如何一劳永逸地解决这个问题?
【问题讨论】:
如果您在 ssh 密钥上设置了密码,ssh(不是 Git!)需要密码来解密密钥,以便它可以看到它们。您需要提供密码或运行可以存储和转发密钥的代理。 “could not resolve hostname”错误无关:它表明您的系统无法将gitlab.com
转换为IP地址,因此您需要查看您的系统是如何做到的。
我已经解决了“无法解析主机名”的问题。我正在使用 https 链接,所以ssh
无法解决它是有道理的。当我使用链接git@gitlab.com
时,它按预期工作。关于您的第一点,我如何在 Windows 上存储和转发密钥,这样我就不必每次都输入密码?
我不确定,因为我不使用 Windows。在 Unix 系统上,ssh-agent
会做这种事情,毫无疑问是一个 Windows 端口,但你从哪里得到它以及如何设置它,我不知道。但是对于主机名解析:不应该使用 https 或 ssh,因为两者都需要将主机名转换为 IP 地址。
【参考方案1】:
当我使用链接 git@gitlab.com 时,它按预期工作。关于您的第一点,如何在 Windows 上存储和转发密钥,这样我就不必每次都输入密码?
您可以使用 %USERPROFILE%\.bashrc
文件(即使在 Windows 上),就像 GitHub describes 一样(它也适用于 GitLab)
然后,您可以打开 Git bash 并检查 ssh -Tv git@gitlab.com
是否有效,前提是您已将公钥添加到 GitLab 配置文件中。
【讨论】:
以上是关于推/拉后提示输入 ssh 密码的主要内容,如果未能解决你的问题,请参考以下文章
shell脚本中ssh到远程机子时,提示输入密码?用变量给出密码 要怎么做?请各位帮忙