LoginSignup
16
13

More than 5 years have passed since last update.

GUI を使わずにコマンドで GitHub に公開鍵を登録する

Posted at

諸事情で Mac から Windows に回帰し、Bash on Ubuntu on Windows で開発環境を作ったり壊したりするのがライフワークになりつつある今日このごろですが、環境の再構築を繰り返していると、GUI で行う操作がどうしても面倒になってきます。

開発環境の SSH Key を作った際に、GitHub に公開鍵を登録する操作は、ターミナル上で公開鍵の中身をクリップボードにコピーし、GitHub の Web サイト上でペーストして登録するのが公式手順ですが、特にこの操作は以前から面倒だなぁと思っていました。なんとかならんものかとふと調べてみたところ…、思いのほかあっさり解決したので紹介します。

動作確認した環境

  • Windows 10 x64, Version 1607 (Bash on Ubuntu on Windows)
  • macOS Sierra
  • Ubuntu 16.04 LTS

前提

  • GitHub にアカウントを登録している
  • 公式手順などで SSH Key を作成している
  • 公開鍵を ~/.ssh/id_rsa.pub に配置している

実施例

curl-u オプションで GitHub のユーザー名を指定し、パスワードで認証して登録します。

$ curl -u "<GitHub のユーザー名>" --data '{"title":"'"$(whoami)@$(hostname)"'","key":"'"$(cat ~/.ssh/id_rsa.pub)"'"}' https://api.github.com/user/keys
Enter host password for user '<GitHub のユーザー名>': (パスワードを入力)
{
  "id": 222...,
  "key": "ssh-rsa AAA...",
  "url": "https://api.github.com/user/keys/222...",
  "title": "bowuser@BOWHOST",
  "verified": true,
  "created_at": "2017-03-13T12:44:28Z",
  "read_only": false
}

なお、以下のような結果が返ってきた場合、同じ公開鍵が既に登録されています。

{
  "message": "Validation Failed",
  "errors": [
    {
      "resource": "PublicKey",
      "code": "custom",
      "field": "key",
      "message": "key is already in use"
    }
  ],
  "documentation_url": "https://developer.github.com/v3/users/keys/#create-a-public-key"
}

キー認証の動作確認

公開鍵を登録後、キー認証の動作確認をします。

$ ssh -T git@github.com

参考

16
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
13