cmake在调用'git'命令时无法读取ssh键

时间:2018-03-21 12:13:34

标签: windows git cmake

我想让'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 个答案:

答案 0 :(得分:2)

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

您应该使用SSH代理,以便SSH已经"意识到"你的SSH密钥,所以你的Git命令不要求密码;例如retry表示如何使用它。另一种解决方案是将密码传递给环境变量,但在我看来,第一种解决方案更合适。

相关问题