bru*_*ais 7 git git-submodules gitlab windows-10 git-for-windows
在gitlab的私有存储库中,当我运行git clone git@git.privateserver.local:group/project-submodule.git克隆成功完成时.
作为克隆过程的一部分,我被要求提供私钥的密码.
当我运行
submodule update --init "group/project-submodule"
它失败时:
许可被拒绝,请再试一次.许可被拒绝,请再试一次.权限被拒绝(publickey,gssapi-keyex,gssapi-with-mic,密码).致命:无法从远程存储库读取.
在尝试处理子模块时,我没有被要求为我的私钥密码.
(我不得不匿名)
致命:将'git@git.privateserver.local:group/project-submodule.git'克隆到子模块路径'C:/ Users/user/repos/project-module/project-submodule'失败
我检查了.gitmodules文件,它包含正确的数据(我认为可以通过错误消息确认).
引起我注意的主要因素是我没有被问到我的私钥密码.甚至更奇怪,因为当我git clone直接使用时,它会按预期运行.
我也已经通过访问进行了诊断ssh并且它询问了我的密码,就像我执行拉或克隆时发生的那样
使用git for windows"git version 2.16.2.windows.1"
Git尝试使用ssh而不是https克隆子模块。如果您尚未配置ssh密钥,则此操作将失败。
您可以设置ssh-agent来缓存ssh密钥的密码,并让git使用它。或更改为https。
对于子模块,Git有点令人困惑。它们是在.gitmodules目录中的文件中配置的,但是将此处的URL从ssh更改为https并没有帮助。Git使用在中配置的网址.git/config。
打开此文件,您将找到类似的内容。
[submodule "project-submodule"]
url = git@example.com:project-submodule.git
Run Code Online (Sandbox Code Playgroud)
将此网址更改为等效的https,然后重试。
问题似乎是 OpenSSH 3.8 抛出一个无法从 win32 访问的对话框?
如果你切换到Git Bash(默认随git一起安装),则会弹出对话框,你可以输入你的私钥密码。
正如其他人指出的那样,替代方法是使用 putty 并设置 plink 来与 ssh 一起使用。我通常使用这种方法,它与选美完美配合。棘手的部分是设置 plink:https ://makandracards.com/makandra/1303-how-to-use-git-on-windows-with-putty
*更新:我尝试了 putty/pageant 但无法使其工作。jenkins git 插件传递的选项与 pageant 不兼容。
不过,找到该对话框对我的 Jenkins 设置没有帮助......
小智 5
您也可以将 ssh 密钥更改为不需要密码的密钥。我有同样的问题,现在git submodule update --init --recursive在不使用密码后工作正常。
似乎是 Windows git 中的一个错误,当它更新子模块时,它不会要求释义键。(git 版本 2.19.1.windows.1)
| 归档时间: |
|
| 查看次数: |
3085 次 |
| 最近记录: |