我想让“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命令就不会要求输入密码;例如,这个答案说明了如何使用它。另一种解决方案是通过环境变量传递密码,但我认为第一种解决方案更合适。