Как клонировать репозиторий git с помощью GitPython, используя ключ SSH с парольной фразой

В настоящее время я пытаюсь понять, как использовать GitPython для клонирования удаленного репозитория с ключом SSH с парольной фразой (с использованием Python 3.5.2). Документация не очень помогла в этом отношении:

Вы также можете указать настраиваемые среды для каждого вызова, используя новый контекстный менеджер в команде Git, например. для использования определенного ключа SSH. Следующий пример работает с git, начиная с версии 2.3:

ssh_cmd = 'ssh -i id_deployment_key'
with repo.git.custom_environment(GIT_SSH_COMMAND=ssh_cmd):
    repo.remotes.origin.fetch()

Из этого я понял, что я могу загрузить определенный ключ через переменную ssh_cmd, и GitPython загрузит его, но как ввести парольную фразу? Будет ли пользователю предложено? Кроме того, я пытаюсь клонировать с удаленного компьютера, приведенный выше код предполагает, что вы уже это сделали или сначала создали локальный репозиторий? Опять же, не очень понятно, по крайней мере мне.

Возможно ли то, что я пытаюсь сделать, и если да, то можете ли вы привести примеры? Я хотел бы увидеть простой рабочий процесс:

  1. Клонировать удаленный репозиторий
  2. Добавьте изменения.
  3. Совершить.
  4. Толкать.

Все с ключом SSH, имеющим парольную фразу.

Я также должен упомянуть, что делаю это на машине с Windows 7, с которой pexpect несовместим.


person drohm    schedule 07.07.2016    source источник
comment
Вы можете попытаться реализовать программу для получения учетных данных пользователя и указать на нее с помощью переменной окружения GIT_ASKPASS. Дополнительную информацию можно найти здесь: git-scm.com/book /en/v2/Git-Internals-Environment-Variables.   -  person Byron    schedule 13.07.2016
comment
В качестве альтернативы вы можете реализовать переменную GIT_SSH и настроить ее так, чтобы она предоставляла вам учетные данные.   -  person Byron    schedule 13.07.2016
comment
У вас случайно нет рабочего примера?   -  person drohm    schedule 13.07.2016
comment
Нет, однако вы можете попробовать их напрямую с помощью командной строки git, без необходимости с самого начала задействовать GitPython.   -  person Byron    schedule 13.07.2016
comment
Настройте ssh-agent и добавьте ключ ssh в ssh0agent. Тогда ssh не нужно будет запрашивать парольную фразу.   -  person Barry Scott    schedule 30.09.2016
comment
Вы когда-нибудь догадывались об этом?   -  person crypdick    schedule 28.08.2017


Ответы (1)


У меня такой же вопрос. На него так и не ответили (4,5 года спустя). Должен быть способ использовать GitPython с ключом ssh, это такая базовая функция. Я не понимаю, почему это задокументировано.

person user10664542    schedule 04.01.2021