【问题标题】:cmake not able to read ssh keys when it calls 'git' commandcmake 在调用“git”命令时无法读取 ssh 密钥
【发布时间】:2018-08-30 13:24:47
【问题描述】:

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

【问题讨论】:

    标签: windows git cmake


    【解决方案1】:

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

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

    【讨论】:

    • git 的凭证助手怎么样?
    • 嗨克里斯托夫!非常感谢。它也有帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多