Githubに公開鍵を登録する

Githubに公開鍵を登録しましょう。公開鍵を登録するとSSHプロトコルで、Gitリポジトリのpush/pullを行うことができます。

この記事は、Linux上で秘密鍵を作成することを前提としています。

公開鍵と秘密鍵の生成

まず、SSHの秘密鍵を保存しておくディレクトリに移動します。「~/.ssh」ディレクトリがない場合は作成します。パーミッションは「700」にします。

mkdir -p ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh

公開鍵と秘密鍵のペアを生成するには、ssh-keygenコマンドを実行します。公開鍵は秘密鍵とセットになっていて、秘密鍵はローカルマシンに、公開鍵は、Github上に登録します。

ssh-keygen -t rsa

生成するファイル名を聞かれますので以下の名前で入力しましょう。

id_rsa_github

「id_rsa_github」と「id_rsa_github.pub」というファイルが作成されます。「id_rsa_github」は秘密鍵、「id_rsa_github.pub」は公開鍵です。

パスフレーズを入力してくださいと聞かれたときは、パスフレーズを設定しないので、Enterを押してください。再入力を求められるのでEnterを押してください。

秘密鍵のパーミッションは600である必要がある

秘密鍵のパーミッションは600である必要があります。ssh-keygenを使って作成した場合は、パーミッションは600に設定されますが、他のサーバーから秘密鍵の内容をコピーしてきた場合は、chmodコマンドを使って、パーミッションを600にしましょう。

chmod 600 id_rsa_github

GithubにSSH接続する場合に作成した秘密鍵を使う設定

GithubにSSH接続する場合に作成した秘密鍵を使う設定をしておきましょう。「~/.ssh/config」に追記します。パーミッションも600にしておきましょう。

echo '
Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa_github
  User git
' | cat >> ~/.ssh/config
chmod 600 ~/.ssh/config

Github上に公開鍵を登録

Github上に公開鍵を登録しましょう。右上のユーザーアイコンの「Settings」から移動します。

SSH and GPG keyをクリックします。

New SSH keyをクリック。

TitleとKeyを入力。Titleは任意で大丈夫です。Keyは「id_rsa_github.pub」の内容です。

catコマンドで「id_rsa_github.pub」の中身を表示してみましょう。

cat id_rsa_github.pub

以下のように表示されます。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjSsucYA958wTIKUcPRXC2iZxb84FXkzm41/jzpfnUeBFsypS8xfTXpfDaSIYeMDyr9pIUfDuWWPykoofL4WZaJYDy5pQclFwby/KttDRAnm0XZQ2ZDUtnrUUdva55mxOcTJP0c1VWXpwrhBA+JSFLOGB8wxCV8UFh9XWXI4c5QKQ/Hyl8//nXT6suQf199VNf4Ru31rs+49FDW9FyvoX1GGEEBJCT2ROVD6qi1xY766PuhM/4OMQeIxZmZg8ysML307viqkKh/2mecwkdV1mxGQt8GbO3gvTOX5h9p7tGEwa3zSHhxudux1Kf6Pfcg4FwKuld8r77DKMXEszpRI11 myapp@myhost

この値がを貼り付けましょう。

これで、登録が完了です。

GithubへSSHで接続できることの確認

GithubへSSHで接続できることの確認しましょう。

ssh -T git@github.com

まだアクセスしたホストでない場合は、通信を許可するかきかれるので「yes」と入力してEnterを押しましょう。

以下のように表示されると成功です。

Hi shinshina-kimoto! You've successfully authenticated, but GitHub does not provide shell access.

これで、SSHで、push/pullができるようになります。

関連情報