Невозможно выполнить передачу по ssh в pygit2

#git #ssh #libgit2 #pygit2

#git #ssh #libgit2 #pygit2

Вопрос:

Я пытаюсь выполнить отправку по ssh в репозиторий github с использованием pygit2. Вот ошибка, которую я продолжаю получать.
Можете ли вы указать на ошибку?

 >>> sshcred = repo_.pygit2.credentials.Keypair('avckp','id_rsa.pub','id_rsa','')
>>> remo2.credentials=sshcred
##  remo2 is a remote object for the repo
>>> remo2.url
u'https://github.com/avckp/sansa-pygit.git'
>>> remo2.push_url = remo2.url
>>> remo2.push('refs/heads/master')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "pygit2/remote.py", line 301, in push
    check_error(err)
  File "pygit2/errors.py", line 57, in check_error
    raise GitError(message)
GitError: HTTP parser error: the on_headers_complete callback failed
  

Комментарии:

1. Почему вы присваиваете remo2.push_url самому себе?

2. это опечатка. это remo2.push_url = remo2.url

3. Спасибо, что указали. Только что сделал.

4. Вы пытаетесь выполнить отправку не по ssh, а по HTTP.

5. Это один из способов запуска некоторых URL-адресов ssh, но вам просто нужно посмотреть на схему, которая должна быть ssh:// (или использовать scp-стиль user@host:path ).). Кроме того, попытка аутентификации от имени use avckp на GitHub не увенчается успехом, поскольку у них нет системного пользователя. git@ Часть, на которую вы ссылаетесь, — это имя пользователя, которое вы заменяете на непригодное в вашем примере.

Ответ №1:

Имя пользователя в паре ключей должно быть ‘git’, как сказано в # 428.

Это должно быть:

 sshcred = repo_.pygit2.credentials.Keypair('git','/path/to/id_rsa.pub','/path/to/id_rsa','')
remo.crendentals = sshcred
  

Затем попробуйте выполнить отправку еще раз.