2013-02-23 3 views
20

Есть ли способ использовать аутентификацию на основе ssh при доступе к API GitHub через командную строку (через, например, завиток и т. Д.?).Как использовать аутентификацию ssh с API-интерфейсом github?

FWIW, я пробовал много вариаций следующее (меняющегося пути я указал файл ключа общественного SSH), но в любом случае, я по-прежнему запрашиваться мой пароль:

% curl --pubkey ~/.ssh/id_rsa.pub --user yrstruly https://api.github.com/user/repos 

ответ

7

Если вы используете ssh, вы никогда не войдете в систему как «yrstruly». Вы всегда будете связываться как «git».
Ваш открытый ключ будет достаточным для того, чтобы GitHub узнал вас как 'yrstruly'.
И поскольку вы используете адрес https, а не ssh, то опция --pubkey, вероятно, будет игнорироваться.

Действительный адрес ssh будет: ssh://[email protected], и я не думаю, что Github предлагает такой доступ для своего api.

curl --user option будет необходимо для протокола HTTPS только адрес, как и в «Having trouble downloading Git archive tarballs from Private Repo»:

curl -sL --user "${username}:${password}" https://github.com... 
+0

Что касается последнего пункта, есть тонны команд в API GitHub, что изменить репо, и для которого аутентификация будет очевидно, необходимо. Кроме того, аутентификация в стороне, по крайней мере некоторые из этих команд * не могли работать * без параметра '-u', потому что они были бы неоднозначными. Например. где будет 'curl -u yrstruly -d '{" name ":" newrepo "}' https: // api.github.com/user/repos' создать новый репо« newrepo », если параметр' -u' не был указано? – kjo

+0

@kjo Я согласен, -u необходимо, и это то, что я использую в своем ответе (с именем пользователя и паролем). Тем не менее, я бы не использовал какой-либо pubkey, так как ssh здесь не участвует. – VonC