Как подключиться к удаленному серверу с помощью SSH-транспорта

Пусть удаленный репозиторий origin имеет URL-адрес ssh. Итак, следующий код:

remote = Rugged::Remote.lookup(repo, "origin")
remote.connect(:fetch)

поднимает Rugged::SshError: Cannot set up SSH connection without credentials.

Похоже, что rugged поддерживает транспорт SSH, так как есть класс Rugged::Credentials::SshKey и можно предоставить опцию :credentials для Repository.clone_at. Но я не вижу способа предоставить учетные данные для Remote#connect в исходном коде. Я что-то упускаю?

И если можно подключиться через ssh, есть ли способ получить учетные данные от ssh-agent? Кажется, libgit2 может запросить ssh-agent.


person TheBug    schedule 01.03.2014    source источник


Ответы (1)


В настоящее время Rugged не поддерживает произвольные удаленные операции с учетными данными и тип учетных данных ssh-agent.

https://github.com/libgit2/rugged/pull/304 предполагается/предполагалось чтобы разобраться с этим, но какое-то время им пренебрегали из-за других вещей, имеющих более высокий приоритет, и теперь он немного оторван от последних изменений в Rugged. Я хочу исправить это как можно скорее, а затем обновлю свой ответ здесь. Я также получу поддержку для запросов к ssh-agent.

person Arthur Schreiber    schedule 01.03.2014
comment
Я проверил этот PR и обнаружил, что метод connect больше не используется. Как теперь можно предоставить учетные данные для метода ls? - person TheBug; 16.03.2014