きっかけ
いつも迷うから。
やることは大筋理解しているのだが、面倒で手軽な方向にばかり逃げてきたので、自戒のためにまとめる。
前提条件
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のバージョンなんて確認しねーよ」って人がほとんどだろうか?
やり方
道筋
大まかなやり方の方針を、まずはざっくり理解する。
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を選択。
そしたら、左のメニューから、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は知っていても、いざ問題に直面すると、フリーズしてしまった頃があった。
今は、簡単に問題解決できるように成長した俺を褒めたい。