最近、M1 Mac Miniを入手しました。この記事を書いた時点では6月のAppleのイベントでハイエンドのMac Miniの発表があるという噂が出回っていたのですが、
- 今の自分にハイエンドすぎるものは必要ない(と所有していたiPad Pro2018及びMac Book Proで感じた)
- Mac miniのコスパの良さが気になっていた
ということもあり、「欲しい時が買い時!」と思っていたところ、メルカリで新品同然のものを安くゲットできたのです!
元々MacBook Proをメインで使用していましたが、その環境設定は引き継がずに、1からMac miniでの環境構築設定を作っていっています。
各種環境設定を進めていく中で「あ、そういえばGitHubのSSH接続の方法についてブログにまとめたことなかったな」ということに気づいたので、良い機会を考え、今回ブログに書いてみることにしました!
ちなみにWindowsでの設定についてはGitHub・SSH接続の環境設定方法(Windows)という記事で別途書いていますが、今回のブログ記事を参照している部分が多々ありますので、Windowsの方も今回の記事を一眼見ていただくことをおすすめします!
目次
そもそもGitHubのSSH接続って何?
一応初めてSSH接続を行うという方がご覧になってくださる可能性も考えて、GitHubのSSH接続って何?というところから説明してみたいと思います!(GitHubって何?というところはこの記事では書かないのでご了承ください)
すでに理解しているという方は、読み飛ばしていただいてOKです!
SSH接続とは、ネットワークを解して別のコンピューターにログインしてそのコンピューターに対して遠隔で操作を行うソフトウェア・プロトコル(決まり事)の総称になります。
通信内容を暗号化した状態でネットワークに介して別のコンピューターにログインをすることができるのが特徴です。
PC上でgit管理しているファイルをGitHub上にあるリモートリポジトリにPUSHしたり、GitHub上にあるリモートリポジトリをcloneする際は
- https接続
- SSH接続
の2つの方法が存在します.
https接続の場合は、GitHubのログインIDとパスワードがあれば接続したりpush・cloneなどのやりとりができるようになるのですが、毎回IDとパスワードを入力しなければならないので、面倒と言えば面倒です。
そこでSSH接続です!GitHubのSSH接続は、PC側で作成した「秘密鍵」と「公開鍵」という2つを発行し、
- GitHub側に公開鍵を登録
- PC側に秘密鍵を保持
させておき、PCからGitHubにこの2つの鍵を用いて接続を行うという方式です。(公開鍵認証方式)
作成した公開鍵と秘密鍵はそれぞれペアになっています。
PCからGitHubに接続した際に、GitHub上に登録された公開鍵とPC上の秘密鍵が正しいペアになっているかどうかを照合し、正しいペアであれば認証→通信が始まるという流れになるということです!
GitHub「お、なんかSSH接続があったぞ。この秘密鍵は確かにGitHub側に登録されている公開鍵とペアになっている!確認したけど確かに問題ないな。正しい秘密鍵を持っているのであれば怪しい接続なわけがないな、よし接続を許可しよう!」
会話調にするとこんな感じでしょうか。
元々ペアになっている公開鍵と秘密鍵をPC側とサーバ側(今回の場合GitHub側)に分けて、接続時にお互いが鍵を出し合うことで、「あ、このSSH接続は怪しいやつじゃないな、じゃあログインすることを許可しよう!」という感じで、SSH接続が実現されるわけですね!
MacでのGitHubのSSH接続方法について
それではここからは、具体的にMac OSでGitHubにSSH接続する方法を見ていきましょう!
1、PC側で秘密鍵と公開鍵を作成する
まずはPC側で秘密鍵と公開鍵を作成しましょう!Mac標準のターミナルアプリや、iTerm2などのサードパーティ製アプリ、あるいはVSCodeに備わっているターミナル機能でもOKかと思いますので、ターミナルを開きましょう!
以下のようなコマンドをターミナル(アプリ)に打ち込んで実行するのですが、以下を例文にして、代表的なオプションの意味を説明していきます!
ssh-keygen -t rsa -b 4096 -C "arrown" -f ~/.ssh/id_rsa
- -t (上記でいうとrsaの部分)・・・作成する鍵の暗号化形式(デフォルトはrsa )
- -b(上記でいうと4096の部分)・・・作成する鍵のビット数を指定(-tをrsaで指定した場合はデフォルトが2048になるなど-tで設定した内容で変わる)
- -C(上記でいうarrownの部分)・・・コメントの指定
- -f (上記でいう~/.ssh/id_rsaの部分)・・・PC上で鍵ファイルが作成される場所。作成後にここで指定した場所に保存される。
今回は上記で紹介したコマンドをそのまま入れてみたいと思います!
上記コードを入れてエンターキーを押すと下記のような表示になると思います。
「Enter passphrase」のところではパスワードを設定するように求められるのですが、パスワードを設定しない場合はただエンターキーを押せばOKです!
上記のような表示が出れば、公開鍵及び秘密鍵の作成が完了です!上記で指し示されているのは、先ほどターミナルに入力したコマンドの中の「-f」のところで指定したPC内の特定の場所になります!
※.sshが見つからないという場合は、以下を試してみてください!
- Finderで開いた状態でCommand + Shift + .(ドット)を同時入力
- Finderで「表示メニュー」を選択し、「パスバーを表示」を選択
- ユーザーディレクトリの中身を表示(下記画像参照)
2、~/.ssh/ディレクトリのパーミッションを700にする
次に、.sshディレクトリのパーミッションを700にして、自分(PC所有ユーザ)だけがアクセスできる状態にしておきます。既になっている場合は不要ですが、なっていない場合は以下のようにしましょう!
cd
(※.sshディレクトリが存在しない場合のみ以下)
mkdir ~/.ssh
chmod 700 ~/.ssh
以上でOKです!
3、GitHubに公開鍵を登録
次に、GitHubに公開鍵を登録します!
まずは、ターミナル上で以下のコマンドを入力します!
pbcopy < ~/.ssh/公開鍵のファイル名
// 今回の記事の例でいうと以下のようになります
pbcopy < ~/.ssh/id_rsa.pub
すると、公開鍵の中身がクリップボードにコピーされます。
今回コピーされた内容をこの後GItHub上に公開鍵として登録します!
GitHubを開きましょう!開いたら、下記画像のように「Settings」の箇所を選択します。
次に出てきたページで、「SSH and GPG keys」を選択します。
次に出てきた画面で「New SSH Key」を選択します。
次に出てきた画面でKeyのところに先ほどコピーした公開鍵の内容を貼り付けします。
貼り付けたら、Add SSH Keyボタンを押しましょう!
先ほどの「SSH Keys」の画面に戻るので、きちんと登録したキーが表示されていれば、GitHub上への公開鍵登録は完了です!
4、(1で公開鍵・秘密鍵ファイルの名前を任意のものにした場合のみ)configファイルに秘密鍵の登録をする
先述した1の工程で公開鍵・秘密鍵のファイル名を任意のものにした場合は、今回の4の工程が必要になります!
ssh接続をする際、PC側ではデフォルトでは「~/.ssh/id_rsa」などを見に行くような設定になっています。
ですが、公開鍵・秘密鍵ファイル名を任意のものにした場合は、そのことをPC側に設定するようにしないとデフォルトのPC側の設定が優先されてしまうので、うまくGitHubにSSH接続ができなくなってしまいます。
ターミナルでまずは以下のコマンドを打ちます。
vi ~/.ssh/config
すると、.sshフォルダ内にあるconfigファイルが開かれます(ない場合は新規で作成されます)。
vi画面が表示されるので、I(アイ)を押してINSERTモードにして、以下のようにコマンドを打ち込みましょう!IdentityFileに秘密鍵のファイルがある場所を忘れずに指定するようにします。
Host github github.com
HostName github.com
IdentityFile ~/.ssh/(秘密鍵のファイル名)
User git
入力できたらescapeキーを押して、:wq!で入力内容を保存しましょう!これでconfigファイルへの登録は終了です!
5、GitHubにSSH接続を試みる
ここまでできたら、あとはGitHubにSSH接続を試みましょう!httpsではなくSSHの方を選ぶようにしてください!
まとめ
ということで、今回はGitHub・SSH接続の環境設定方法(Mac OS)についてブログにいたしました!
久しぶりに技術系のブログ記事をしっかり書いたので、だいぶ記事をかくのに時間を要しましたが、少しでも今回の記事が多くの方に役立てば幸いです!
僕も良い機会なので、新しいMacに環境設定をしていく中でいろいろブログにアウトプットしていこうと思います!