Git BashでGitHubにssh接続する手順 (Windows)

Git BashでGitHubにssh接続する手順です。Windowsから接続します。
(確認環境:Windows10,git 2.19.1,Google Chrome)

目次

手順 1.Git Bashで秘密鍵と公開鍵を作成する
  2.GitHubに公開鍵を登録する
  3.GitBashでsshを使用してGitHubに接続する

1.Git Bashで秘密鍵と公開鍵を作成する

  • Git Bashで秘密鍵と公開鍵を作成します。
  • 秘密鍵はローカルPCで保管し、公開鍵をGitHubに登録します。
  • git(Git Bash)のインストールは以下を参照願います。
    https://itsakura.com/tool-git-install

1-1.コマンドを入力する

エクスプローラーを開き、右クリックからGit Bash Hereを選択してコマンド入力欄を表示します。

 

以下の1行目のssh-keygenコマンドを入力します。

$ ssh-keygen -t rsa -b 4096 -C "comment"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/test1/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/test1/.ssh/id_rsa.
Your public key has been saved in /c/Users/test1/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:K(省略) comment
The key's randomart image is:
+---[RSA 4096]----+
| . |
(省略)
+----[SHA256]-----+

1行目のssh-keygenの引数の意味は以下のとおりです。
 引数の-tは、暗号化方式を指定します。
 引数の-bは、鍵長で4096を指定しています。
 引数の-Cは、コメントです。GitHub公式では、メールアドレスを指定しています。
3行目は、キーを保存するファイルを指定します。何も入力せずエンターキーを押すで問題ないです。
4,5行目は、パスフレーズ(文字列)を入力します。
GitHub接続時に、このパスフレーズを入力します。
パスフレーズの文字が短すぎる場合は以下のエラーメッセージが表示されます。5文字は成功しました。「failed: passphrase is too short (minimum four characters)」

 

1-2.作成した鍵を確認する

$ ls -l ~/.ssh
total 8
-rw-r--r-- 1 test1 197121 3326 11月 21 20:40 id_rsa
-rw-r--r-- 1 test1 197121 733 11月 21 20:40 id_rsa.pub

1行目のコマンド(コピペ可)を入力します。
3行目が秘密鍵で、4行目が公開鍵です。

秘密鍵 id_rsa
公開鍵 id_rsa.pub

 

2.GitHubに公開鍵を登録する

GitHubに公開鍵を登録します。
ファイルを開き公開鍵の値を取得してGitHubの入力欄に貼り付けます。

clip < ~/.ssh/id_rsa.pub

1.以下のコマンドを入力するとクリップボードに公開鍵のファイルの中身がコピーされます。
テキストファイルに貼り付けで確認できます。
公開鍵のファイル(id_rsa.pub)をテキストエディタ等にドラッグアンドドロップしてその内容をコピーでも可能です。

$ clip < ~/.ssh/id_rsa.pub

 

2.GitHubの画面を開き、画面右上のアイコンをクリックし、「Setttings」をクリックします。

 

3.「SSH and GPG keys」をクリックし、SSH keysの「New SSH key」をクリックします。

 

4.Titleにタイトルを入力し、Keyに手順1でコピーした公開鍵を貼り付け、「Add SSH key」ボタンを押します。これでGitHubに公開鍵が登録されます。

 

3.GitBashでsshを使用してGitHubに接続する

GitBashでsshを使用してGitHubに接続します。

ssh -T git@github.com

1行目のsshコマンドでGitHubに接続に行きます。
秘密鍵の指定先がありませんが、デフォルトの場所を指していることになります。(C:\Users\ユーザ名\.ssh)

$ ssh -T git@github.com
The authenticity of host 'github.com (192.30.255.113)' can't be established.
RSA key fingerprint is SHA256:n(省略).
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.255.113' (RSA) to the list of known hosts.
Enter passphrase for key '/c/Users/test1/.ssh/id_rsa':
Hi testuser123abc! You've successfully authenticated, but GitHub does not provide shell access.

4行目は、yesを入力します。
6行目は、設定したパスフレーズを入力します。
7行目のように「Hi ユーザー名!・・・」が表示されたら接続成功です。

任意の場所にある秘密鍵を直接指定する場合は以下のようにします。

ssh -i 秘密鍵 git@github.com
ssh -i githubkey/id_rsa git@github.com

2行目は、Dドライブ直下から配下のgithubkeyフォルダにあるid_rsaファイルを指定しています。

参考:
https://help.github.com/articles/testing-your-ssh-connection/
https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

関連の記事

GitHubにアカウントを登録/削除する手順
gitをWindows10にインストールする手順
Git リポジトリにコミットする流れ(Git Bash)
Git ブランチを作成しマージする(Git Bash)
Git クローン(clone)してpushとpullを行う(GitHub)

△上に戻る