如何使用带有密码短语的SSH密钥使用GitPython克隆git存储库
我目前正试图弄清楚如何使用GitPython克隆具有密码短语的SSH密钥的远程存储库(使用Python 3.5.2)。文档在这方面没有太大帮助: 您还可以在Git命令上使用新的上下文管理器指定每次调用的自定义环境,例如使用特定的SSH密钥。以下示例适用于从v2.3开始的git: 我从中得出的结论是,我可以通过ssh_cmd变量加载一个特定的密钥,GitPython将加载它,但是密码短语是如何输入的呢?是否会提示用户?另外,我正在尝试从远程克隆,上面的代码假设您已经完成了这项工作,或者首先创建了本地存储库?再说一次,至少对我来说,这不是很清楚 我想做的是可能的吗?如果可能的话,你能举个例子吗?我希望看到一个简单的工作流程:如何使用带有密码短语的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将加载它,但是密码短语是如何输入的呢?是否会提示用户?另外,我正在尝试从远程克隆,上面的代码假设您已经完成了这项工作,或者首先创建了本
我还应该提到,我是在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()