通过ssh的GitPython克隆提示输入未知密码

时间:2018-11-01 16:54:59

标签: git ssh gitpython

我正在使用GitPython在多个存储库上执行命令。它可以与公共存储库完美配合。我正在尝试在Gitlab实例上托管的私有存储库上运行脚本。

我已阅读:

GitLab cloning via SSH always prompts for password(但我无权访问Gitlab)

Gitpython ssh password

我尝试了3种方法来克隆私有存储库:

方法1

from git import Repo
from git import Git

git_ssh_identity_file = os.path.expanduser('~/.ssh/id_rsa')
git_ssh_cmd = 'ssh -i {}'.format(git_ssh_identity_file)

with Git().custom_environment(GIT_SSH_COMMND=git_ssh_cmd):
  Repo.clone_from(url, destination)

方法2

from git import Repo
from git import Git

ssh_executable = os.path.join('.', 'ssh_executable.sh')
with Git().custom_environment(GIT_SSH=ssh_executable):
    Repo.clone_from(url, destination)

ssh_executable.sh内:

#!/bin/sh
ID_RSA=~/.ssh/id_rsa
exec /usr/bin/ssh -o StrictHostKeyChecking=no -i $ID_RSA "$@"

方法3

import subprocess

p = subprocess.Popen(['git', 'clone', url], cwd=destination)
p.wait()

所有这些方法都会提示我输入密码3次:

  

Popen(%s,cwd =%s,Universal_newlines =%s,shell =%s)

     

密码:

我尝试了 root密码 ssh密钥密码以及Gitlab的登录密码。这些都不起作用。同样以sudo运行脚本并提供密码最初并没有任何改变。我100%肯定密码正确。我仔细检查了。我也拥有所需的权限。 我在这里缺少什么? (我还停用了Gitlab上的2FA,因为我怀疑是问题所在)

0 个答案:

没有答案