GitやGitHubでSSHに接続する方法をわかりやすく解説!

この記事ではGitSSHで接続する方法について解説します!Gitには色々な方法で接続をすることが出来ますが、GitHubなどのサービスを使うときはSSHで接続する方法が主流です。

SSHとは何かを知りたい。
SSH接続をするためのキーの作り方を知りたい。
GitHubでSSH接続をしたい。

といった方に向けてこの記事では、

  • SSHとは
  • SSHで接続する意味
  • 公開鍵と秘密鍵を生成する方法
  • GitHubにSSHを登録する方法

について解説していきます。SSHについて分からない方も、ぜひこの記事を参考にして接続してみてください!

SSHとは

まずはSSHとは何かについて知っておきましょう。SSH(Secure SHell)はネットワークを経由してマシンを遠隔操作する仕組みのことで、通信が暗号化されているのが特徴的です。

主にクライアント(ローカル)からサーバー(リモート)に接続をするときに使われます。このSSHの暗号化について、仕組みを見ていく上で重要になるのが秘密鍵公開鍵です。

まずはクライアントのマシンで秘密鍵と公開鍵を作り、公開鍵をサーバーに渡します。そしてサーバー側で「この公開鍵はこのユーザー」というように、紐付けを行っていきます。

複雑な過程は省きますが、自分で管理して必ず見せてはいけない秘密鍵と、サーバーに渡して見せても良い公開鍵の2つがSSHの通信では重要になってきます。

GitやGitHubにSSHで接続をする意味

ではなぜGitやGitHubでSSH接続をするのでしょうか。GitHubではリモートリポジトリと通信をするときに、http,https,git,sshの4種類のプロトコルを使うことが出来ます。

httpは通信が暗号化されていないのであえて使う意味は無いのですが、httpsでは暗号化がされ、GitHubの推奨プロトコルでもあります。またhttpやhttpsの方が高速で、クローンも高速に行うことが出来ます。

しかしSSHには、仕組みが比較的分かりやすく、なおかつ一般的なアクセスには困らないというちょうど良さがあります。

それだけ? と思うかもしれませんが、GitHubにアクセスをする方法についての解説記事ではSSHを使った解説のほうが多いことも要因と言えるでしょう。

GitHubを使わなくても、Gitを自社環境で用意する場合はSSH接続のほうが遥かに楽(公開鍵を渡してアドレスを教えてもらうだけ)という点もSSHが使われる理由の一つになります。

SSHの公開鍵と秘密鍵を生成する方法

それでは早速、SSHの公開鍵を秘密鍵を生成してみましょう。

※ここではUnix系のコマンドを使うので、Macの環境を想定しています。このコマンドを実行して、ディレクトリを移動しましょう。

このcdコマンドでは、「/Users/username」という現在のディレクトリ(カレントディレクトリ)から、「.ssh」という隠しディレクトリに移動をしています。無い場合はmkdirコマンドで作っても構いません。

このディレクトリには何もないことを、lsコマンドで確認してみましょう。

次にこのコマンドで鍵を生成しましょう。

「ssh-keygen」というコマンドで、RSAという方式の暗号鍵を作っています。実行すると、「名前はどうするか?」、「パスフレーズはどうするか?」、「パスフレーズをもう一度入力」、などについて3回ほど聞かれます。

特にこだわりが無ければすべてEnterを押して飛ばしてもらっても構いません。これで先ほどと同じようにlsコマンドで「~/.ssh」を見てみましょう。

先程に名前を変えなければ、このようなファイルが出来ているかと思います。このファイルで、「id_rsa」が秘密鍵、「id_rsa.pub」が公開鍵になっていて、公開鍵の方をGitサーバーやGitHubに送ることでSSH接続が出来るようになります。

GitHubにSSHを登録する方法

それでは先程出来たSSHの公開鍵をGitHubに登録しましょう。こちら(https://github.com/settings/keys)のページにアクセスしてみましょう。

このページのSSH keysにあるNew SSH keyから公開鍵をアップロードすることで公開鍵を登録することが出来ます。

ただアップロードは直接ファイルをアップロードするのではなく、ファイルの中に羅列された文字列をコピペしてアップロードします。そこでこちらのコマンドを実行しましょう。

このコマンドを実行することでクリップボードに文字列がコピーされます。⌘ + vでKeyに貼り付けると完了です。GUIのクライアントを使っている場合は、そのクライアントで鍵を指定するのを忘れないようにしましょう。

まとめ

この記事ではSSHとは何かについて、SSHキーの生成方法、GitHubに公開鍵を登録する方法について解説してきました。SSHとGitHubの関係については分かって頂けたでしょうか?

SSHはGitやGitHubだけでなく、様々なサーバーに対しても使うことが出来ます。気になる方はぜひ調べてみてください!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ryo

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説