A autenticação com nome de usuário e senha é suportada pela API do github :
There are three ways to authenticate through GitHub API v3. ...
Basic Authentication
$ curl -u "username" https://api.github.com
...
Então, apenas escolha um lib no idioma de sua preferência e use a versão implementada do Crie uma chave pública Seção da API "Chave pública":
Creates a public key. Requires that you are authenticated via Basic Auth, or OAuth with at least [write:public_key] scope.
ENTRADA em POST /user/keys
{
"title": "octocat@octomac",
"key": "ssh-rsa AAA..."
}
Se você quiser usá-lo na linha de comando (via curl):
curl -u "username" --data '{"title":"test-key","key":"ssh-rsa AAA..."}' https://api.github.com/user/keys
ou mesmo sem solicitar senha:
curl -u "username:password" --data '{"title":"test-key","key":"ssh-rsa AAA..."}' https://api.github.com/user/keys
aqui está um pequeno tutorial para usar o curl para interagir com a API do github