あんパン

こしあん派

GitHubにcurlで公開鍵を登録する

developer.github.com

Adds a public SSH key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least write:public_key scope.

とのことで、BASIC認証でAPIを叩くことができる。知らなかった…

developer.github.com

2要素認証を有効にしている場合は、X-GitHub-OTPヘッダでワンタイムパスワードを送信すると突破することができる。

curl -XPOST \
  -H 'Content-Type: application/json' \
  -H 'X-GitHub-OTP: one_time_pass' \
  --basic -u 'user:password' \
  -d '{"title": "user@hostname", "key": "public_key"}' \
  'https://api.github.com/user/keys'

という感じで実際に登録することができた。