Githubのユーザー登録が終わって、初期設定をはじめていると、HTTPS接続とSSH接続の2種類の接続方法があり、どちらの接続方法がよいか、またその2つの接続にどのような違いがあるのか、など迷われた人はいるのではないでしょうか?
この記事では、SSH接続とは何か、HTTPS接続との違いについても解説するとともに、SSH接続の仕方を初学者にもわかりやすく解説しているので、ぜひご覧ください。
Contents [hide]
SSHとは
Secure Shell(セキュアシェル)の略で、遠隔でコンピューターを操作するためのツールです。遠隔でコンピューターを操作できれば、コンピューターのある場所に出向いて作業をおこなう必要がないので、サーバーのセットアップやメンテナンスをおこなう際などに有用です。
かつては、Telnet(Teletype network)により同様の処理がおこなわれていましたが、Telnetは通信データが暗号化されていませんでした。そのため、例えば、サーバーを操作する際にログインが必要な場合が多く、そうなるとアカウント情報が暗号化されずに通信されるため、安全面に疑問視されていました。SSHは通信データが暗号化されており、安全に通信をおこなうことができるのが特徴です。
通信方式の一種
SSHはプロトコルの一種です。プロトコルとは、通信をおこなう際の決められた手順のことです。有名なものとしては「HTTP」などがあります。決められた手順を踏むことで、異なるコンピューター同士でも通信が可能になります。
HTTPSとの違い
Githubには「HTTPS」と「SSH」の2種類の接続方法があります。その違いについてみていきます。
・HTTPSによる接続
HTTPS(Hypertext Transfer Protocol Secure)による接続の最大のメリットは、そのお手軽さです。ユーザー自らが設定したユーザーIDかメールアドレス、パスワードを入力すれば、遠隔から簡単にサーバーにアクセスできます。また、HTTPSは暗号化方式で通信をおこなうため、安全に通信をおこなうことができます。接続するサーバーの安全性は、第三者機関(認証局)の発行した証明書により保たれているのが特徴です。
・SSHによる接続
SSHも通信が暗号化されており、自分のパソコンからサーバーに接続する際、HTTPSと同様に安全に通信をおこなうことができます。HTTPSとの違いは、接続するサーバーの安全性が、ユーザーの設定した公開鍵による認証により保たれている点です。
GithubでSSH接続する手順
GithubでSSH接続する手順について解説します。この項目は、GitのインストールとGithubの登録が必須になります。それぞれご準備ください。
公開鍵・秘密鍵の発行
「Git Bash」を起動し、下記のコマンドを入力します。「YOUR_EMAIL」にはGithubに登録したメールアドレスを入力し、「Enter」を押下します。
$ ssh-keygen -t ed25519 -C “your_email@example.com” |
このまま「.ssh」以下のフォルダに作成する場合は、「Enter」を押下します。
passphrase(パスフレーズ)を設定する場合は、ここで設定できます。パスフレーズとはパスワードの一種で10文字以上の文字列からなります。安全性を増したい場合、設定をおこなっても構いませんが、設定しなくても先に進むことができます。なお、設定した場合「Git Bash」の際にパスフレーズの入力を求められるようになります。
ここでは、空のまま先に進みます。「Enter」を押下します。

「Enter」を2回押下します。
ここで、実行エージェントが動作しているか確認します。下記のコードを入力し、「Enter」を押下し、Agent pidが表示されていれば問題ありません。
$ eval “$(ssh-agent -s)” |
秘密鍵の登録をします。下記コードを入力し、「Enter」を押下します。
$ ssh-add ~/.ssh/id_ed25519 |
GithubにSSH キーの追加をおこないます。下記のコードを入力します。
$ cat ~/.ssh/id_ed25519.pub |
公開鍵が発行されるので、これをコピーしGithubに登録します。
GitHub上に公開鍵を登録する
Githubにログインし、右上のアイコンから「Setting」を選びます。
「SSH and GPG keys」を選び、「New SSH key」ボタンを押下します。
「Title」に管理しやすい適当な名前を入力します。
「Key type」は、「Authenication Key」と「Signing Key」のどちらかから選べます。「Authenication Key」は認証鍵を用いる方式で、「Sighning Key」はデジタル署名を用いる方式です。今回は「Authenication Key」を採用します。
「Key」に先ほどコピーした公開鍵をペーストします。
「Add SSH key」ボタンを押下すれば、登録完了です。
ローカルで接続確認
「Git Bash」を立ち上げ、下記のコマンドを入力します。
$ ssh -T git@github.com |
下記のように表示されていればGithubへの接続は成功です。
GithubでSSH接続をする際の注意点
GithubでSSH接続する際の注意点について解説します。
秘密鍵の管理
上記で説明してきた「id_ed25519.pub」は、公開鍵です。公開鍵はGithubに登録されており、ユーザーが秘密鍵で作成したデータかどうか照合します。
こうしてサーバー側とのやり取りは安全におこなえ、また通信時は暗号化されているため、「秘密鍵」さえ安全に管理していれば、Githubを安全に利用することができます。
そのため、誤って秘密鍵の格納されたファイルを公開状態にしてGithubにアップロードしたり、自分以外の誰かに漏洩することがないように気を付けて管理しましょう。
公開鍵の使いまわし
万が一、秘密鍵が漏洩した場合、たった一つしかない秘密鍵が、他人も利用できるようになり、Githubにアップロードしたデータにアクセスし放題になります。そういった被害を減らすために、複数の公開鍵を使用するために、複数のアカウントを作成し、運用する方法もあります。
一台の端末で運用する場合、複数ある秘密鍵を運用する必要があります。
その際に、使用するコマンドが下記のコマンドです。
「config」を作成します。
$ cd ~/.ssh$ touch config$ vi config |
下記のとおりに編集します。
「Host」……ホスト名を入力します。
「User」……ユーザー名を入力します。
「HostName」……ホスト名かIPアドレスを入力します。
「IdentityFile」……秘密鍵を入力します。
以上をアカウントごとに入力し、管理します。
Host 〇〇 HostName github.com User git IdentityFile ~/.ssh/秘密鍵(ud_rsa) |
まとめ
SSH接続もHTTPS接続も、通信時はいずれも暗号化されていて、安全に通信できることを解説しました。
両者の違いは、サーバー側での安全面の取り扱いで、SSH接続は公開鍵と秘密鍵によってセキュリティを担保しています。
秘密鍵を安全に管理することで、Githubを安全に運用することができます。
この記事を参考に、ぜひSSH接続を試してみてください。
フリーランスの案件をお探しの方はTechReachにご相談ください。
TechReachを運営する株式会社アールストーンはIT・Web業界特化で15年以上の実績がございます。
そのため、高単価・高品質な数多くの案件紹介が可能です。
また一人のコンサルタントが企業と求職者様の担当を行う「両面型エージェント」を採用しているため、あなたの希望に合う案件がきっと見つかるはずです。
TechReachを活用して、理想の案件を見つけましょう!