Githubには、リポジトリという概念があります。
リポジトリは、自分のPC上の「ローカルリポジトリ」とサーバー上の「リモートリポジトリ」というものがあります。
ローカルリポジトリの変更をリモートリポジトリに反映するために、Githubでは「SSH接続」というものが存在します。
今の段階ではSSH接続については、リモートコンピュータと安全に通信するための通信手順(プロトコル)と考えてください。
そこで今回の記事では、SSH接続というものを用いて自分のPC上で変更したプログラムを、Githubに反映する方法を紹介したいと思います。
SSH接続というものは馴染みがないと思うので、丁寧に紹介していこうと思います。
この記事はMacOS向けに書かれたものですので、windowsOSをお使いの方は他の記事を参考にすることをおすすめします。
windowsをお使いの方は「Gitbash」というツールを使うとgitが使いやすいのでおすすめです。
目次
GitHubにSSH接続するための手順
ステップ1:Githubにログインする
今回は、すでにGithubにログインしていることを想定して、ステップ2からSSH接続に本格挑戦していきます。まだ、Githubにログインしていないという方は下の記事を参考にしてみてください。
ステップ2:鍵を生成する
まずは以下のコマンドで、ssh-keyを生成してください。Macのターミナルで実行してください。
「sample_email@sample.com」の部分は、あなたのメールアドレスを入力してください。
ちなみに鍵の強度は、Githubが公式で推奨している「4096bit」にしています。このオプションをつけないと、2048で生成されます。
ステップ3:ファイル名の変更とパスフレーズ
今回はGithubの鍵だとわかりやすいように生成されるファイル名を変更しようと思います。
パスフレーズは指定しなくてもいいのですが、あった方がよりセキュリティが高く保たれるので設定しておきましょう。パスフレーズは見えませんが、メモを取っておきましょう。
6行目のコマンドを打ち込むと、「id_rsa_github(秘密鍵)」と「id_rsa_github.pub(公開鍵)」というファイルが生成されていることが確認できるでしょう。
ステップ4:SSHのconfigファイルの編集
configファイルを設定することで、SSH接続を行う時にどの秘密鍵を使用するのかを指定することができます。
ステップ5:github側の設定をする(公開鍵設定)
まず最初に、公開鍵をコピーします。
公開鍵というのは、拡張子が「.pub」となっている方です。拡張子がついていないファイルは秘密鍵なので、絶対公開してはいけません。今回の場合「id_rsa_github.pub」をコピーします。
以下のコマンドを実行してください。するとクリップボードにコピーされます。
次に、Githubにログインします。
そしてアカウントのロゴをクリックすると、下画像のような「Setting」という項目があるので、そこをクリックしてください。

画面が移ったページの左側に「SSH and GPG keys」という項目があります。クリックしてください。
次の画面の中に「New SSH key」というボタンがありますので、クリックしてください。

すると下画像のようなkeyを登録する画面に遷移すると思うので、「title」と「key」を入力しましょう。「title」には、自分のわかりやすいタイトルをつけます。例えば、「MacOS SSH key」などでしょうか。「key」には先ほどクリップボードにコピーした公開鍵をペースとします。

ペーストしたら、「Add SSH key」をクリックしてください。これで公開鍵の登録は完了です。
ステップ6:秘密鍵をssh-agentに設置
秘密鍵を安全に管理するために、ssh-agentに秘密鍵を登録しましょう。
ステップ7:接続できているか確認
最後のステップでやることは、ssh接続できているかの確認だけです。以下のコマンドをターミナルで実行してください。
「Hi ユーザー名! You’ve successfully・・・」というような表示がされたら、SSH接続が成功しています!
これで全てのステップは終了です。お疲れさまでした。
まとめ
今回の記事では「SSH接続」を使って、Githubと通信する方法を紹介しました。
いかがだったでしょうか?
SSH接続の手順自体は、「手も足も出ないほど難しい」と感じる人は少ないと思います。しかし「SSH」というネーミングとあまり馴染みのない接続方法のためか、モヤモヤ感があるかもしれません。
今は「SSHという通信規格があるのか」というぐらいの理解で問題はありません。モヤモヤが気になる方は、今後少しずつ調べていくことで「SSH通信」自体を理解することができ、モヤモヤが解消されると思います。
私が初学者だった頃は、「SSH通信」という仰々しい言葉にうろたえて、最初の踏み出しをためらってしまいました。そのような経験から、今からGithubにSSH接続する方のハードルを下げるべく、この記事を書きました。読んでいただきありがとうございました。
コメントを残す