githubへの接続をsshでする方法
大まかな作業は、bitbucket での手順と同じです。
環境
- Windows10
- git version 2.19.0.windows.1
ssh 鍵の作成
git-bash を使用して秘密鍵と公開鍵を作ります。
$ ssh-keygen -t rsa -C "mail@example.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/ユーザ名/.ssh/id_rsa): keykey
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in keykey.
Your public key has been saved in keykey.pub.
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX mail@example.com
The key's randomart image is:
+---[RSA 2048]----+
| XXXXXXXXX |
| XXXXXXXXX |
| XXXXXXX |
| XXXXXXXXXX|
| XXXXXXXXXXX|
| XXXXXXXXXX|
| XXXXXXXXX|
| XXXXXXXX |
| XXXXXXX |
+----[SHA256]-----+
対話型で質問して来ます。
生成するファイル名を入力します。ファイル名は好きなもので OK です。
Enter file in which to save the key (/c/Users/ユーザ名/.ssh/id_rsa): keykey
鍵のパスワード。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
パスワードを指定すると鍵を使用するときにパスワードを尋ねられます。
パスワードを指定しなければ、パスワード入力無しで鍵を使用できるようになります。
コマンドが成功すると 2 つのファイルが生成されます。
keykey
keykey.pub
keykey
が秘密鍵、keykey.pub
が公開鍵になります。
後ほど公開鍵の方を github へ登録します。
生成したファイルは、下記の場所に移動してください。
C:\Users\ユーザ名\.ssh\
github へ公開鍵を登録する
ブラウザで github へログインします。
ログインしたら、ユーザのアイコンをクリックして、下記のように画面を進みます。
[settings] > [SSH and GPG keys] > [New SSH key]
Title には適当な文字列を入力します。
作業する環境が複数ある場合はどのマシンの接続用なのか分かるようにしておくと良いでしょう。
key に先ほど作成した、keykey.pubの内容を貼り付けます。
テキストエディタでkeykey.pubを開いてコピー&ペーストで OK です。
貼り付けたら、[Add SSH key]をクリックして完了です。
ssh の設定
はじめに config ファイルを作成します。
作成する場所は、下記です。
C:\Users\ユーザ名\.ssh\config
ファイルを作成したら、エディタで開いて下記のように記述します。
Host github.com
User git
Hostname ssh.github.com
Port 443
IdentityFile "C:\Users\ユーザ名\.ssh\keykey"
編集するポイントは、秘密鍵をおいている場所を指定しているところです。
.pub
がついていない方のファイルを指定してください。
IdentityFile "C:\Users\ユーザ名\.ssh\keykey"
configファイルには複数の接続先を記述することも可能です。
github を併用する場合は下記のようになります。
Host github.com
User git
Hostname ssh.github.com
Port 443
IdentityFile "C:\Users\ユーザ名\.ssh\keykey"
Host bitbucket.org
Hostname bitbucket.org
User git
Port 22
IdentityFile "C:\Users\ユーザ名\.ssh\keykey"
TCPKeepAlive yes
IdentitiesOnly yes
シンボリックリンクの作成
git の ssh 接続設定にも同じ内容が必要になりますので、シンボリックリンクを作成します。
コマンドプロンプトを管理者権限で起動して下記のコマンドを実行します。
mklink "C:\Program Files\Git\etc\ssh\ssh_config" "C:\Users\ユーザ名\.ssh\config"
実行して下記のように表示されれば成功です。
C:\Program Files\Git\etc\ssh\ssh_config <<===>> C:\Users\ユーザ名\.ssh\config のシンボリック リンクが作成されました
接続テスト
次のコマンドを実行して、接続のテストを行います。
$ ssh -T git@github.com
初回は次のような質問が表示されますので、yes とタイプしてエンターを押してください。
Are you sure you want to continue connecting (yes/no)? yes
下記のように表示されれば接続 OK です。
Hi githubユーザ名! You've successfully authenticated, but GitHub does not provide shell access.