ページ一覧
SSHガイド
SSH とは
Secure Shell の略で、ネットワーク上にある端末(サーバ、ルータなど)に安全に操作するためのプロトコルです。
接続手段は パスワード方式と公開鍵認証の 2 パターン用意されている。
この記事では GitHub と通信することを想定しているため、後者の公開鍵認証を取り上げる。
公開鍵とは
1 つの鍵(共通鍵)だけでやり取りすると、その鍵が外部に流出してしまったときに、自分と通信相手以外の第三者までが、解読できてしまう。 それを解決するために誕生したのが公開鍵です。
公開鍵を用いて、 Alice が Bob に暗号文を送る手順は次のとおりです。
Bobが公開鍵と秘密鍵の異なる 2 つの鍵を用意する。( 2 つの鍵は対応している)BobはAliceに公開鍵を提示する。(公開鍵では暗号文を復号できないので、Twitter のような不特定多数が見られる場所に載せても問題ない)AliceはBobの提示した公開鍵を使って送りたい文章を暗号化し、Bobに送る。BobはAliceから送られてきた暗号文を秘密鍵を用いて復号する。
実際、メールなどを暗号化する際には GPG というものを使うのが一般的です。
GitHub で SSH 接続をする方法
今回は RSA よりも鍵長が短く高速に処理ができる エドワーズ曲線デジタル署名アルゴリズムの ED25519 を用いる。
公開鍵と秘密鍵を生成する
- Windows の場合は Git Bash を、Mac, GNU/Linux の場合は ターミナルを開く。
- 下記のコマンドをコマンドラインに入力する。
ssh-keygen -t ed25519 そうすると、次のように表示される。
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/user/.ssh/id_ed25519): どこに保存するか聞かれるので、特に指定がなければ Enter を押す。
次に、以下のように新しいパスワードの入力を求められる。
適切なパスワードを設定して Enter を押し、先程設定したパスワードをもう一度入力して Enter を押す。
Enter passphrase (empty for no passphrase):
Enter same passphrase again: そうするとホームディレクトリの直下に .ssh ができ、その中に id_ed25519 と id_ed25519.pub の2つの鍵が生成される。
GitHub に公開鍵をプッシュする
ここで 先程作った 公開鍵を登録する。
1. New SSH key をクリックする。

2. 適当な Title を設定し、key のフォームに公開鍵をペーストする。
Mac の場合は pbcopy < ~/.ssh/id_ed25519.pub
Windows の場合は clip < ~/.ssh/id_ed25519.pub
で公開鍵をコピーし Key の入力フォームにペーストする。

3. ssh -T git@github.com とコマンドラインに入力し、パスワードを入力して、接続できてるか確認する。
Hi "GitHub のユーザー名"! You've successfully authenticated, but GitHub does not provide shell access. と出てきたら成功。