GitHubにSSHでセキュアに接続する方法
  • facebookページ
  • twitterページ
  • 2018.03.17

    GitHubにSSHでセキュアに接続する方法

    GitHub、とても便利なソースコード管理のWebサービスですよね。自分がソース管理をする目的で使えるだけでなく、URLを誰かに伝えると、ブラウザだけでソースコードを見てもらえます。

    どうせならよりセキュアに接続するために、SSH接続にチャレンジしてみましょう。

    前提知識

    ここで前提知識であるSSHや秘密鍵、公開鍵について解説しましょう。

    SSHとは

    SSHとはSecureShellの略で、超簡単にいうと「どこかのコンピューターと安全に通信するためのプロトコル」です。SSHでの通信は、認証のための情報や通信内容が暗号化されるので、安全な通信が可能というわけです。

    また、認証にはすぐ後に解説する秘密鍵・公開鍵を使うので、パスワードの入力が必要なくなります。一応、GitHubのサイトのSSHについて解説している部分を引用しておきます。

    SSHプロトコルを使うと、リモートサーバーや各種サービスへの接続や認証が可能になります。SSHキーを使うと、GitHubとの接続のたびにユーザー名やパスワードを入力する必要がなくなります。

    一般的に、ユーザー名とパスワードを入力する認証方法はセキュリティ的に弱いとされています。パスワードによる認証を一切無効にして、後述する「鍵」による認証のみにするといったことがよく行われます。

    公開鍵、秘密鍵とは

    公開鍵と秘密鍵について、他のサイトで素晴らしい解説が多数あるので、ここでは簡単に解説してみます。

    公開鍵と秘密鍵という2つの鍵を作ります。公開鍵は一般に公開するためのもの、秘密鍵は自分だけのものとします。公開鍵で鍵をかけたものは、秘密鍵でしか開けられません。逆もまたしかりで、秘密鍵で鍵をすると公開鍵でしか開けられません。

    自分の手で2つの鍵を作ります。そして公開鍵は、あらかじめ通信する相手に預けます。つまりGitHubに登録するのです。

    GitHub側とクライアントPC側、双方がこれらの鍵を使って認証や暗号化通信を行うというわけです。

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

    では実際に作業してみましょう。手順はGitHubのサイトにある手順に基づいています。

    鍵の作成

    鍵はターミナルでコマンドを打って生成します。ただ、既存の鍵があるのにコマンドを実行すると上書きされてしまいます。よって、既存の状態を確認します。

    実行中にフォルダがないといったエラーメッセージが表示されれば、今まで鍵を生成したことがありません。lsを実行してファイルが何も表示されなければ、鍵を生成したことがありません。次の手順へ進んでください。

    もし仮にフォルダが存在していれば、lsコマンドの結果を見てid_rsa.pubとid_rsaというファイルが存在しているか確認してください。id_rsa.pubが公開鍵、id_rsaが秘密鍵です。この2ファイルがそろっていれば、「公開鍵をGitHubへ登録する」から実行してください。

    ssh-keygenで鍵を生成する

    ssh-keygenコマンドで鍵を生成します。「GitHubに登録したメールアドレス」はダブルクウォーテーションでくくって下さい。

    入力をうながすメッセージが表示されますが、すべて何も入力せずEnterしてください。

    以下のように表示されます。

    これで鍵の生成は終了です。

    公開鍵をGitHubへ登録する

    公開鍵をGitHubへ登録しますが、要はコピペで文字列を貼り付けるだけです。

    公開鍵、といっても中身はただのテキストです。普通にエディタでも開くことができます。しかしせっかくターミナルを開いているので、コマンド一発でコピーしましょう。

    次にGitHubを開き、SSH鍵の登録画面を開きます。右上のユーザーのアイコンをクリックし、プルダウンメニューの「SSH and PGP Keys」をクリックして、さらに「New SSH Keys」をクリックしてください。

    Titleは適当です。KeyにCommand+Vでペーストしてください。

    「Add SSH Key」をクリックして終了です。

    SSHエージェントに鍵を登録する

    この鍵を使う!とエージェントに伝える必要があります。

    お使いのPCがMacOS Sierra 10.12.2かそれ以降なら、configというファイル名を新規に作り、以下を貼り付け、~/.sshフォルダに置く必要があります。

    configファイルができたら、ファインダーのメニューバーの「移動」「フォルダへ移動」を選択し、「~/.ssh」と貼り付けて移動ボタンをクリックしてください。そこへ上記で作ったファイルを置きます。

    続けましょう。以下を実行します。

    これで完了です。

    接続できたかどうか確認する方法

    ターミナルから、以下のコマンドを実行してください。

    すると、以下のいずれかのワーニングが表示されます。

    お使いのPCで実際に表示されたメッセージ中の「RSA key fingerprint is 〜」と、上記のいずれかが一緒なら問題ありません。yesとタイプしてEnterしてください。

    これで接続完了です!お疲れ様でした。

    まとめ

    本記事では、GitHubにSSHで接続する方法まで解説しました。

    感触がつかめたら、パスフレーズを設定したり、実際にリポジトリをクローンしてみてくださいね!


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料25万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE

    ポテパンおすすめ案件