2013-02-23 28 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

相关问题