諸事情で 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