2013-02-23 89 views
20

當通過命令行訪問GitHub API時(通過例如curl等?),是否有某種方法可以使用基於ssh的認證?如何使用github API使用ssh身份驗證?

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

關於你提到的最後一點,有一噸是修改回購GitHub的API中的命令,併爲這些認證會顯然是必要的。此外,除了認證之外,至少其中一些命令*不可能在沒有'-u'參數的情況下工作,因爲它們會不明確。例如。如果'-u'參數不是'curl -u yrstruly -d'{「name」:「newrepo」}'https:// api.github.com/user/repos'則會創建新的repo「newrepo」指定? – kjo 2013-02-24 00:52:11

+0

@kjo我同意,-u是必要的,這是我在我的答案中使用(使用用戶名和密碼)。但是,我不會使用任何公鑰,因爲ssh不在這裏。 – VonC 2013-02-24 01:03:29

相關問題