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

cmake调用“git”命令时无法读取ssh密钥

劳鹏云
2023-03-14

我想让“cmake”使用“git export”命令从git存储库导出一些文件。每次我这么做,我都会收到一个错误

Permission denied, please try again.
git@xxxx: Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly

如果我自己从DOS命令行执行,系统会提示我输入密码。据我所知,我的ssh密钥已经提供给网络管理员,用于监视git存储库。

你知道为什么'cmake'无法拿起我的ssh密钥吗?如何防止询问密码?

在我正在使用的命令下方

execute_process(
    COMMAND git --remote=git+ssh://git@xx/proj.git master source/folder --format=tar.gz  > package.tar.gz
    RESULT_VARIABLE rv
    ERROR_VARIABLE  ev
    OUTPUT_VARIABLE ov
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}

共有1个答案

应俭
2023-03-14

我认为CMake不能请求用户输入,所以当调用Git命令并请求密码时,输入是空的,这会导致命令失败。

您应该使用SSH代理,以便SSH已经“知道”您的SSH密钥,这样Git命令就不会要求输入密码;例如,这个答案说明了如何使用它。另一种解决方案是通过环境变量传递密码,但我认为第一种解决方案更合适。

 类似资料:
  • 我使用三个ssh密钥访问GitHub、GitLab和BitBucket。但我不知道为什么我只能访问GitLab。我使用ssh-T进行测试。GitHub和Bitbucket都显示了这一点git@github.com:权限被拒绝(公钥)。我确信我已经为这些服务添加了密钥。 这是我的配置。ssh文件夹。请帮帮我。

  • 我在Windows 10上使用Git for Windows,我使用GitExtension作为我的GUI。为了向各种Git存储库进行身份验证,我使用putty/pageant并将我的密钥加载到其中。GitExtension以某种方式与此配合使用。最近,我在https://gitlab.example.com遇到了一个Git存储库,GitExtension试图在其中执行并告诉我:我还尝试使用git

  • 我正试着和git建立联系http://danielmiessler.com/study/git/#website来管理我的网站。 我已经完成了说明中的最后一步:git推送网站master:refs/heads/master 我正在使用win7中的git ming32命令行 这里的一个问题可能是程序正在寻找Bill@***. com。当我通过ssh连接到我的网站时,我有一个不同的用户名(让我们说“a

  • 我已经在我的Windows 7机器上创建了一个公钥和私钥到我的Git服务器,当我在Windows中使用Tortoise Git时,我可以成功使用它。 我现在只想在命令行上使用它,但无法让它工作,因为msysGit没有获取我的ssh密钥。 有人能帮我介绍一下如何帮助mysysGit捡起我存储在。。。 我在网上看到一条帖子,建议把它放在 可能有帮助,但没有。 谢谢

  • 一直不太懂这两个的区别?这两者有什么优缺点吗

  • 因此,我现在使用的代码给了我一个TypeError:无法为我的ping命令读取undefined的属性'send',然后是TypeError:无法为我的ban命令读取undefined的属性'users',由于我做了什么或忘记了做什么,我还有其他命令不能正常工作,代码一直在工作,直到我向代码添加了权限,然后它就走下坡路了,我不知道在权限之前和之后哪里不工作/它是如何工作的,但后来只是停止工作,我不