よしかわーるど

プログラミングで世界を変える

2018-12-05

Gitを使ってみる その1 鍵の作り方合ってるか?

この記事は、VOYAGE GROUPのサマーインターン、Treasure2018の修了生による

Treasure Advent Calendar 2018 5日目の記事です。


どうも、よしかわです。

いよいよ、今年もあと 1 ヶ月ということもあり、GitHub で草を生やしたい人も出てくるはずです。

GitHubアカウントをそもそも持っていないって?

まぁ、この記事を見て草でも生やしていこうじゃないですか!

もう、SSH 通信で GitHub で通信できてるぞ!っていう人は、この記事を読まなくても大丈夫です👍

対象読者

  • GitHubアカウントを持っていない人
  • Git、GitHub の使い方を学びたい人
  • Source Treeを使っている人
  • Terminal を使っている人

目次

このブログでは以下のことを行います。

参考文献

Git が、おもしろいほどわかる基本の使い方 33

サルでもわかる Git 入門

GitHubアカウントを作る

https://github.com にアクセスしたらusername,email address,passwordを入力してください。

入力できたら「Sign up for GitHub」をクリックしてください。

Step 2では「Unlimited public repositories for free」が選択されていることを確認したら「Continue」をクリックして次に進みます。

Step 3ではアンケートに回答をします。一応訳を書いておきます。

How would you describe your level of programming experience? (プログラミング経験はどのくらい?)

  • Totally new to programming (はじめてだよ)
  • Somewhat experienced (すこしはできるよ)
  • Very experienced (最強卍)

What do you plan to use GitHub for? (GitHubをどのように使う予定ですか? 複数回答可)

  • Development (開発)
  • School projects (学校のプロジェクト)
  • Project Management (プロジェクト管理)
  • Design (設計/デザイン)
  • Research (研究)
  • Other (please specify) (その他・具体的に)

Which is closest to how you would describe yourself? (あなた自身が一番近いものは?)

  • I’m a professional (プロです)
  • I’m a hobbyist (趣味でやってます)
  • I’m a student (学生です)
  • Other (please specify) (その他・具体的に)

What are you interested in? (何に興味がありますか?)

下記は例だよ!自分の興味のあることを書こう!

Golang React

確認

入力したメールアドレス宛にGitHubから確認のメールが来ているので、Verifyしましょう。

環境構築

今回は SSH 通信にフォーカスして記事を作りたいと思います。

それでは、環境構築していきます。

公開鍵・秘密鍵の作成をする

SSH Keys について詳しく知りたいことがあれば、各自で調べて下さい。

今回は、OpenSSH のssh-keygenというコマンドを使います。

ECDSAというアルゴリズムで鍵を作成します。

エドワーズ曲線デジタル署名アルゴリズムで作ってもいいよ

$ install -m 0700 -d ~/.ssh
$ cd ~/.ssh

ちなみに 521bit というのは typo ではありませんので、あしからず。

参考: 楕円曲線暗号に 512 bit は存在しない

以下の○○、yoshikawataiki@gmail.comを自分で書き換えて下さい。

$ ssh-keygen -t ecdsa -b 521 -f ○○-github -C "yoshikawataiki@gmail.com"

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):  <-- パスフレーズを入力(任意)
Enter same passphrase again:  <-- もう一度、パスフレーズを入力(任意)

鍵の暗号強度の確認

ECDSA の 521bit 長で作成することに成功できたかを確認しましょう。

$ ssh-keygen -l -f ~/.ssh/○○-github

521 SHA256:JyTfLqpEqNxaDo4SvGRMamod/JXXPjy0iEf2mtoAuFE yoshikawataiki@gmail.com (ECDSA)

SSH 通信の確認をする

次に ssh の config について追記をして、SSH 通信が出来ているか確認しましょう。

$ cd ~/.ssh
$ vim config

.ssh/config

Host github.com
  HostName github.com
  User git
  IdentityFile /Users/yoshikawa/.ssh/yoshikawa-GitHub
  TCPKeepAlive yes
  IdentitiesOnly yes
keyword 内容
Host ホスト名
HostName ホストのアドレスか IP アドレス
User ログインユーザ名
IdentityFile ログインするための秘密鍵のパス
TCPKeepAlive 接続状態を継続するかどうか
IdentitiesOnly IdentityFile が必要かどうか

config ファイルを作り終わったら、以下のコマンドで GitHub に対して鍵の登録をしましょう。

$ cat ~/.ssh/○○-github.pub | pbcopy

https://github.com/settings/keys から New SSH key で鍵の登録を行いましょう。

鍵の登録が完了したら、実際に通信していきましょう。

$ ssh -T git@github.com

Hi yoshikawataiki! You've successfully authenticated, but GitHub does not provide shell access.

デバッグの詳細を知りたいなら、以下のコマンドを実行しましょう。

$ ssh -vT git@github.com

それでは、これまでにやってきたことの復習をします。

  • 鍵の作成
  • 鍵の登録
  • 鍵を用いた通信の確認

ここまで出来たら、CLI で操作が可能になります!お疲れ様です!

Source Tree をインストールする

ターミナルからではなく、もっと分かりやすく学習したい人はSource Treeを導入していきましょう!

MacOS を使っている人は簡単に以下のコマンドを実行しましょう。

$ brew cask install sourcetree

はい、これでダウンロードできる!Homebrew に感謝!

おわりに

Gitの使い方についてやSourceTreeの使い方は次の記事で書きますので、よろしくおねがいします。

久しぶりにブログ記事を書いているので、至らない点はいくらでもありそうですけど、このへんで終わります。

アドベントカレンダー6日目が空いてたら、その2の更新でもしたいと思います。

明日は、monpoke1さんの「JavaScriptの難読化技術を探る」です!