提问者:小点点

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}

共1个答案

匿名用户

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

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