Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用带有密码短语的SSH密钥使用GitPython克隆git存储库_Git_Python 3.x_Ssh_Gitpython - Fatal编程技术网

如何使用带有密码短语的SSH密钥使用GitPython克隆git存储库

如何使用带有密码短语的SSH密钥使用GitPython克隆git存储库,git,python-3.x,ssh,gitpython,Git,Python 3.x,Ssh,Gitpython,我目前正试图弄清楚如何使用GitPython克隆具有密码短语的SSH密钥的远程存储库(使用Python 3.5.2)。文档在这方面没有太大帮助: 您还可以在Git命令上使用新的上下文管理器指定每次调用的自定义环境,例如使用特定的SSH密钥。以下示例适用于从v2.3开始的git: 我从中得出的结论是,我可以通过ssh_cmd变量加载一个特定的密钥,GitPython将加载它,但是密码短语是如何输入的呢?是否会提示用户?另外,我正在尝试从远程克隆,上面的代码假设您已经完成了这项工作,或者首先创建了本

我目前正试图弄清楚如何使用GitPython克隆具有密码短语的SSH密钥的远程存储库(使用Python 3.5.2)。文档在这方面没有太大帮助:

您还可以在Git命令上使用新的上下文管理器指定每次调用的自定义环境,例如使用特定的SSH密钥。以下示例适用于从v2.3开始的git:

我从中得出的结论是,我可以通过ssh_cmd变量加载一个特定的密钥,GitPython将加载它,但是密码短语是如何输入的呢?是否会提示用户?另外,我正在尝试从远程克隆,上面的代码假设您已经完成了这项工作,或者首先创建了本地存储库?再说一次,至少对我来说,这不是很清楚

我想做的是可能的吗?如果可能的话,你能举个例子吗?我希望看到一个简单的工作流程:

  • 克隆远程存储库
  • 添加更改
  • 承诺
  • 都使用具有密码短语的SSH密钥


    我还应该提到,我是在Windows 7机器上进行此操作的,pexpect与之不兼容。

    我有同样的问题。它从未得到回答(4.5年后)。必须有一种方法将GitPython与ssh密钥一起使用,这是一个基本特性。我不明白为什么会有文档记录。

    您可以尝试实现一个程序来获取用户凭据,并使用
    GIT\u ASKPASS
    environmant变量指向它。您可以在此处找到更多信息:。或者,您可以实现
    GIT_SSH
    变量,并将其设置为为您提供凭据。您是否碰巧有一个工作示例?没有,但是,您可以直接使用GIT命令行尝试这些操作,无需从一开始就涉及GitPython。安装ssh代理并将ssh密钥添加到ssh0agent。然后ssh将不必提示输入密码短语。
    ssh_cmd = 'ssh -i id_deployment_key'
    with repo.git.custom_environment(GIT_SSH_COMMAND=ssh_cmd):
        repo.remotes.origin.fetch()