エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

githubのssh-keyの登録

きっかけ

いつも迷うから。

やることは大筋理解しているのだが、面倒で手軽な方向にばかり逃げてきたので、自戒のためにまとめる。

前提条件

githubに登録するので、前提条件としては、githubのアカウント/リポジトリがあることとする。
また、vi操作は、できるものとして話を進める。

環境

OS

$sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.6
BuildVersion:   18G87

mac前提です。
windowsだと、sshクライアントがデフォルト付いてないのが嫌なので、やっぱり開発はmacでってなってしまう。
cygwin入れればいいのだろうけど、インストールが面倒なんだよね。
時間もかかるし。

Git

$git --version
git version 2.22.0

毎回、git -v をやって怒られてしまう。
ailiasつければいいのだろうが、あんまりailiasに頼りすぎると、環境を一から作るときに苦労しそうなのでやめてる。
他の人はどうしているのだろう?
「そもそも、gitのバージョンなんて確認しねーよ」って人がほとんどだろうか?

やり方

道筋

大まかなやり方の方針を、まずはざっくり理解する。

  1. ssh-keyの生成
  2. 設定ファイルの作成
  3. githubに公開鍵を登録
  4. ssh接続のテスト

ssh-keyの生成

まずは、公開鍵と秘密鍵を作る。

$ cd ~/.ssh
$ ssh-keygen -t rsa -C <メールアドレス>

ディレクトリは、~/.ssh以外でもいいけど、指定があとあと面倒になるので、なるべくここにした方が無難。

ssh-keygenを実行すると、何回か質問される。
Enter file in which to save the key (/Users/<ユーザ名>/.ssh/id_rsa):は、他の場所に保存するかどうか聞かれる。
あんまり場所を移すと、あとあとどこに何をおいたのか分からなくなるので、デフォルトのまま、何も入力せずにenterする。

Enter passphrase (empty for no passphrase):は、見た通り、パスワード設定。
これを入力すると、確認のために、再度入力を求められるので、もう一回入力してenter。

そうすると、~/.ssh/下に、id_rsa/id_rsa.pubが出来上がる。
ファイルの内容は、下記の通り。
id_rsa : 秘密鍵
id_rsa.pub : 公開鍵

設定ファイルの作成

鍵の管理を容易化するために、設定ファイルを追加する。
なければ、新規作成。

$ vi ~/.ssh/config

下記を追記する。

Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa
  User git

githubに公開鍵を登録

やっと登録。
まずは、githubにサインインする。
サインインできたら、右上のアカウントアイコンを押下して、Settingsを選択。

f:id:suzaku0914:20190816141755p:plain

そしたら、左のメニューから、SSH and GPG keysを選択。 SSH keysの右側にあるnew ssh keysボタンを押下。

titleは、適当に入力。
keyには、id_rsa.pubの内容をコピペする。
下記のコマンドで、クリップボードにコピーしてペーストすると、楽チン。

$ pbcopy < ~/.ssh/id_rsa.pub

入力が終わったら、Add SSH keyボタンを押下して登録。
そうすると、一覧画面に登録した内容が表示されているはず。

ssh接続のテスト

もろもろの登録が終わったので、ちゃんと動作するのかテストする。
失敗したまま進むと、何が問題か分からなくなるので、何事も一個一個、こまめに確認しながら進むことが大事。

下記のコマンドで、ssh接続してみる。

$ ssh -T git@github.com

Are you sure you want to continue connecting (yes/no)?って聞かれたら、とりあえずyes
Enter passphrase for key '/Users/<ユーザ名>/.ssh/id_rsa':って聞かれるので、ssh-keygenで入力したパスワードを入力。
通信が成功すると、Hi <githubアカウント名>! You've successfully authenticated, but GitHub does not provide shell access.って表示されるはず。

感想

やることは簡単なんだけど、やるとなると面倒臭く感じるのは、俺が怠惰だからかも知れない。
githubは、privateリポジトリが誰でも作れたりするようになったので、ssh-keyを作成する需要は上がるかもって思って、まとめ記事を書いてみた。
実際、何も見ないでssh-keyを生成・登録できる人って、少数だと思いたい。少なくとも、俺は無理。何回も調べちゃう。

sshの概念って、わかっちゃいるけど、いざやるとパニクる時代が懐かしいなと感じた。
まだ、IT初心者の頃は、知識としてsshは知っていても、いざ問題に直面すると、フリーズしてしまった頃があった。
今は、簡単に問題解決できるように成長した俺を褒めたい。

参考サイト

GitHubにSSH接続できるようにする方法 - Qiita

GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita