2013-02-23 22 views
20

Czy jest jakiś sposób korzystania z uwierzytelniania opartego na ssh podczas uzyskiwania dostępu do interfejsu API GitHub za pośrednictwem wiersza poleceń (za pośrednictwem np. Zawijania itp.?).Jak korzystać z uwierzytelniania ssh za pomocą interfejsu API github?

FWIW, próbowałem wiele odmian z następujących (zmieniając sposób, w jaki określonym mój plik klucza ssh publicznego), ale w każdym razie ja wciąż poproszony o hasło:

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

Odpowiedz

7

Jeśli używasz ssh, to nigdy nie logowałbyś się jako "yrstruly". Zawsze łączyłeś się jako "git".
Twój klucz publiczny wystarczy, aby GitHub rozpoznał Cię jako "yrstruly".
A ponieważ używasz adresu https, a nie ssh, opcja --pubkey prawdopodobnie zostanie zignorowana.

Prawidłowy adres ssh to: ssh://[email protected], i nie sądzę, że Github proponuje taki dostęp dla swojego interfejsu API.

curl --user option byłoby konieczne dla https zająć tylko, jak w „Having trouble downloading Git archive tarballs from Private Repo”:

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

Odnośnie ostatniego punktu, istnieje mnóstwo poleceń API GitHub, które modyfikują repo, i dla których autoryzacja będzie oczywiście konieczne. Co więcej, oprócz uwierzytelnienia, przynajmniej niektóre z tych poleceń * nie mogłyby działać * bez parametru '-u', ponieważ byłyby niejednoznaczne. Na przykład. gdzie 'curl -u yrstruly -d '{" name ":" newrepo "}' https: // api.github.com/user/repos' utwórz nowe repo" newrepo ", jeśli parametr' -u' nie był określony? – kjo

+0

@kjo Zgadzam się, -u jest konieczne i jest to, czego używam w mojej odpowiedzi (z nazwą użytkownika i hasłem). Jednak nie używałbym żadnego klucza publicznego, ponieważ ssh nie jest tutaj zaangażowany. – VonC

Powiązane problemy