GitHubはHTTPSの他、SSHでも接続することができます。GitHubを使い慣れてくると、「SSHで接続したい」と考える方も多いのではないでしょうか。
GitHubはSSH接続を受け付けるための管理画面を用意しており、SSH接続を行う手順は難しくありません。コマンド操作に慣れた方であれば、手順さえわかればすぐに必要な操作を完了できるでしょう。
この記事では、GitHubにSSH接続するメリットやSSHで接続する手順、注意点について解説します。
目次
GitHubにSSH接続するメリット・理由
GitHubにはSSHの他、HTTPSでも接続できます。SSH・HTTPSのいずれも通信を暗号化できますが、SSHによる接続を選ぶことでどのようなメリットがあるでしょうか。
SSH接続するメリット・理由としてSSHによる接続の方が、HTTPSによる接続よりシンプルで手間がかからない点があげられます。HTTPSでGitHubに接続する場合、アクセスの度にパスワードによる認証が必要です。
一方でSSHは公開鍵暗号方式(※)による認証が行われる代わりに、パスワードによる認証を必要としません。毎回パスワードを打ち込む必要がなくなる分、SSHの方がシンプルかつ手間なくGitHubに接続できるのです。
対になる秘密鍵・公開鍵を使って暗号化する方式です。データの送信者は、受信者から取得した公開鍵を使って暗号化を行います。公開鍵を使って暗号化されたデータは、その対となる秘密鍵でしか暗号解除(複号化)できません。受信者は自分だけが所有している秘密鍵を使って、データを暗号解除します。
GitHubにSSH接続する手順
GitHubへSSHで接続するためには、公開鍵・秘密鍵を発行し公開鍵をGitHubへアップロードする必要があります。以下、具体的な手順について1つずつみていきましょう。
※すでにGitHubのアカウント登録や初期設定がすんでいるものとします。
GitHubのアカウント登録や初期設定については、以下記事を参考にして下さい。
GitHubは世界中のエンジニアが開発を行う際に、プログラムのソースコードを共有するのに利用しているサービスです。初めてGitHubを使うときは、GitHub独自のルールや使い方を把握する必要があります。ただ、GitHubで使うコマンドや管理画面の操作は難しくないので、1度理解すれば簡単に使えるでしょう。 なおGitHubの基本的な知識については、以下記事で解説しています。GitHubの概要から学…
ssh-keygenコマンドで公開鍵・秘密鍵を発行する
まずはssh-keygenコマンドを使って公開鍵・秘密鍵を発行します。
コマンドラインツール「Git Bash」にて、以下コマンドを実行してください。
ssh-keygen -t rsa
以下のように、ファイルの保存場所やパスワードを指定するように求められます。今回は、何も入力せず「Enter」を押し続けてください。
これで公開鍵・秘密鍵の作成が完了し、以下のように表示されます。
GitHubに公開鍵をアップロードする
作成した公開鍵をGitHubにアップロードします。まず、以下コマンドを実行し公開鍵(id_rsa.pub)の内容を表示させてください。
cat /c/Users/ユーザー名/.ssh/id_rsa.pub
※公開鍵の保存場所については、秘密鍵・公開鍵を作成した際に表示されています。
(「/c/Users/ユーザー名/.ssh/id_rsa.pub」の部分)
公開鍵の内容が表示されるので、「ssh-rsa…」からはじまる箇所をコピーしておきます。
次にブラウザでGitHubの管理画面へアクセスし、右上のアイコンから「Settings」へ進んでください。
次に画面左側に表示されたメニューの中から、「SSH and GPG keys」を選んで下さい。
「SSH and GPG keys」のメニューが表示されます。SSH keys欄にある「New SSH Key」をクリックして下さい。
「SSH keys/Add new」画面が表示されます。以下の通り入力し「Add SSH key」をクリックして下さい。
Title | 登録する公開鍵につける名前を入力します。 自分でわかりやすいように、任意の文字列を入力してください。 |
Key type | 「Authentication Key」を選んでください。 |
Key | 先程コピーした、公開鍵の文字列を貼り付けてください。 |
これで、GitHubへ公開鍵をアップロードできました。
GitHubのリポジトリへSSH接続する
公開鍵のアップロードまですんだら、以下コマンドを実行してください。
ssh -T git@github.com
以下のように表示されたら接続は完了です。
Hi (user_name)! You've successfully authenticated, but GitHub does not provide shell access.
GitHubにSSH接続する際の注意点
SSH接続をするため、GitHubへ公開鍵を登録しました。この場合、その対となる秘密鍵さえあれば、GitHubへ簡単にSSH接続できることになります。
言い換えれば、秘密鍵さえあれば悪意のある第三者も、GitHubへ不正にアクセスできるようになってしまうわけです。そういった被害を防ぐためにも、秘密鍵が漏えいしてしまうことがないように、十分に注意する必要があります。
まとめ
GitHubへSSH接続する場合、アクセスの度にパスワードを入力する必要がありません。その分、GitHubへ簡単に手間なくアクセスできるようになります。
GitHubへSSHで接続するためには、秘密鍵と公開鍵を発行することが必要です。その上で、GitHubへ公開鍵をアップロードすれば、GitHubへSSH接続できるようになります。
作成した秘密鍵は、第三者に漏えいしてしまうことがないように注意して下さい。仮に悪意のある第三者に秘密鍵がわたってしまうと、GitHubへ不正にアクセスされコードが盗まれるなどの被害を受ける可能性があります。
KAGOYAのレンタルサーバ―はSSH機能を備えているため、Gitコマンドをご利用いただけます!
リーズナブルなプランからハイスペックなプランまで選択可能なため、事業用や練習用など用途に合わせて選ぶことができます。
【入門】GitHub からレンタルサーバーにコマンドひとつでアップする方法
Webサイトのコードや、WordPressの自作テーマ、カスタマイズしたテーマを GitHub で管理する場合、開発したソースコードを Webサーバーに公開する方法はいくつかあります。この記事では GitHub とレンタルサーバーを SSH 接続し、GitHub からレンタルサーバーへ Clone(Pull)することで公開する手順を解説します。 なお、GitHubについて詳しくは以下のページで解説…