cmake 在调用"git"命令时无法读取 SSH 键



我想让"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}

我认为 CMake 无法要求用户输入,因此当调用 Git 命令并要求输入密码时,输入为空,这会导致您的命令失败。

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

最新更新