GitHubへのSSH接続手順


はじめに

GitHubへSSHを利用した接続手順をメモとして残します。

環境

Windows10

事前準備

GitHubのアカウントが作成済みであること。
PCにGit for Windowsがインストール済みであること。

全体の流れ

① 公開鍵・秘密鍵の作成
② configファイルの作成
③ GitHubに公開鍵を登録
④ 接続確認
⑤ 鍵をssh-agentへ登録

①公開鍵・秘密鍵の作成

Git Bashを起動し、以下のssh-keygenコマンドより公開鍵・秘密鍵を生成します。

ssh-keygen -t rsa -b 4096 -C "[email protected]"
# -C メールアドレス

鍵の保存場所を聞かれるので、問題なければそのままEnter。
変更した場合は:以降に任意のパスを入力します。

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/{user name}/.ssh/id_rsa): 

パスワードの設定を聞かれるので、任意のパスワードを入力します。
※空でも登録できますが、セキュリティ面を考えると設定した方が良さそうです。

Enter passphrase (empty for no passphrase):

入力したパスワードを再入力します。

Enter same passphrase again:

以下のメッセージが表示されればOKです。

Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
SHA256:VoikRYkzotb7ds0dmdtu/QhNu0DePN9Lla5LTjtBCM8 [email protected]
The key's randomart image is:
+---[RSA 4096]----+
|     o+.         |
|  . ++.. o       |
| ....o. . = .    |
|.. .     . E .  .|
|.   .   S   = ...|
|   .   .   * *...|
|    .   o . BoOo |
|     o . o o+*+*.|
|    . .     o*=.*|
+----[SHA256]-----+

指定したパス(デフォルトでは/c/Users/{user name}/.ssh)にid_rsa(秘密鍵)、id_rsa.pub(公開鍵)が作成されます。

configファイルの作成

①で作成した鍵と同じディレクトリにconfigファイルを作成します。

configファイルをエディタで開き、下記を貼り付けます。

Host github
  HostName github.com
  IdentityFile ~/.ssh/id_rsa
  User git

# IdentityFileは秘密鍵のパス

ファイルを保存したらconfigファイルの設定完了です。

③GitHubに公開鍵を登録

GitHubにログインして、右上のアイコンからSettingsをクリックします。

SSH and GPG keys > New SSH keyを選択して公開鍵を登録します。
Title・・・任意の文字列
Key・・・生成した公開鍵の内容(公開鍵ファイルをエディタで開き、全選択・コピーし、そのまま貼り付け)

④接続確認

Git Bash上から以下のコマンドを入力します。

初回は接続確認を聞かれます。
問題ないのでyesを入力しEnter。

Are you sure you want to continue connecting (yes/no)?

パスワードの入力を求められるので、①で設定したパスワードを入力してEnter。

Enter passphrase for key '/c/Users/test1/.ssh/id_rsa':

以下のメッセージが表示されれば接続OKです!

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

⑤鍵をssh-agentへ登録

④までの内容でSSH接続の設定は完了ですが、毎回パスワードの入力を求められるので、省略したい場合はssh-agentを利用します。

.sshがあるディレクトリと同階層に.bashrcファイルを作成します。
作成したファイルをエディタで開き、以下を入力します。

#ssh-agent
eval `ssh-agent`
ssh-add

Git Bashを再起動するとパスワードの入力を求められます。
ここで認証が成功すれば、以降はパスワードの入力を省略できるようになります。
※ターミナル単位での永続化になるので、別のターミナルを開いたり、一度ターミナルを閉じて再度開くと最初のパスワード入力は発生します。