GitHubにSSH接続するための鍵作り

2021年10月3日GitHubGitHub,SSHキーGitHub,GitHub,SSHキー

記事ヘッダー_SSH用の鍵作り

今回は鍵作り。GitHubにSSH接続するためのSSHキーを作成したのでその覚書。

前提

Git Bashが必要。
Git BashはGitをインストールすると利用できる。Gitのインストール方法はこの記事で書いてます。

SSHキーの作成

Git Bashでコマンドを実行し、SSHキーを作成する。

ssh-keygen コマンドを実行

コマンドはこれ。実行すると以下のようなキーに関する設定を聞かれる。

ssh-keygen -t ed25519 -C "Mail" # Mailは自分のメールアドレス

SSHキーのファイル名

これから作成するSSHキーのファイル名を決める。
デフォルトでは c:\Users\username\.ssh/id_eb25519 という名前だが、変更するのであれば名前を入力しEnter

Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/username/.ssh/id_ed25519):

パスフレーズの登録

SSHキー用のパスフレーズ(後で使う)を決める。
任意のパスフレーズを入力しEnter。確認を含め2回入力する。

Enter passphrase (empty for no passphrase): # 1回目
Enter same passphrase again:                # 2回目
SSHキーをVSCodeから使う場合の注意点

VSCodeからSSHを使ったとき、使用されるSSHキーにパスフレーズが設定されていると Permission denied (publickey). なーんてエラーになります。
これは多分、VSCodeがSSHキーを触ろうとした際にパスフレーズを要求されるが、VSCode自身はその要求に応えられずエラーになってる感じ…なのかな?

とりあえずの対策としては、SSHキーを作成するときにパスフレーズを設定せず作ると上手いこと動きました。

キチンした対策は、ssh-agent あたりをごにょごにょすればパスフレーズの入力を省略出来るはずだから、上記エラーが解消されるかな~とは思うんですが…、詳しく調べられてないのでそのうちアップデート予定。

作成されたSSHキーのファイルパス

無事SSHキーが作成されると、SSHキーのファイルパスが表示される。

Your identification has been saved in /c/Users/username/.ssh/id_ed25519
Your public key has been saved in /c/Users/username/.ssh/id_ed25519.pub

作成されたキーの確認

作成されたキーを確認してみる。

$ ls -l ~/.ssh/id*
-rw-r--r-- 1 username 197609 464 Oct  2 23:48 /c/Users/username/.ssh/id_ed25519
-rw-r--r-- 1 username 197609 103 Oct  2 23:48 /c/Users/username/.ssh/id_ed25519.pub

SSHキーをGitHubに登録

GitHubのサイトを開き、先程作成したキーを登録する。

GitHubのサイトを開く

GitHubのサイトを開きログインする。
サイトはここ。

SSHキーを登録する

先程作成したSSHキーをログインしたアカウントに登録する。

設定(Settings)を開く

右上のメニューからSettingsのページを開く。

Settings のページを開く
Settings のページを開く

SSHキーの登録ページを開く

左側のメニューから「SSH and GPG keys」のページを開き、「New SSH key」を押す。

SSHキーの登録
SSHキーの登録

登録ページが開く。

SSHキーの登録ページ
SSHキーの登録ページ

SSHキーをクリップボードにコピー

一度GitHubから離れ、Git Bashを起動する。
このあとSSHキーの情報を入力するために、次のコマンドを実行しSSHキーファイル(/c/Users/username/.ssh/id_ed25519.pub)の中身をクリップボードにコピーしておく。

clip < ~/.ssh/id_ed25519.pub

SSHキー情報を入力し登録する

GitHubに戻りキーのタイトル(何でも良い)を入力し、クリップボードにコピーしたキー情報を貼り付ける。
キー情報を入力したら「Add SSH key」を押し登録する。

SSHキーの入力
SSHキーの入力

登録されたSSHキーの確認

SSHキーが登録されると、こんな感じで表示されるようになる。

登録されたSSHキー
登録されたSSHキー

SSH接続のテスト

設定したSSHキーが正しく使えるか、SSH接続を試してテストする。

テスト用コマンドの実行

SSH接続はをテストするためのコマンドはこれ。
Git Bashから実行すればテストできる。

ssh -T git@github.com

フィンガープリントの確認

初回接続ではフィンガープリントの確認が求められる。
表示されたフィンガープリント(SHA256:から後の文字列)が GitHubの公開鍵のフィンガープリント と一致すれば正しい。"yes" と入力して次に進む。(初回の確認が済むとGitHubのサーバはリストアップされ2回目以降は聞かれなくなる)

The authenticity of host 'github.com (52.192.72.89)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?

SSHキーのパスフレーズの確認

SSHキーに設定したパスフレーズを聞かれるので入力する。

Enter passphrase for key '/c/Users/username/.ssh/id_ed25519':

テスト完了

こんなんが出れば接続テストは成功。

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

さいごに

ふ~、これでSSHを使えるようになりました。
そもそもこれをやり始めた理由は Private なリポジトリが見えなかったから、、、なんですよね。_(:3」∠)_

というわけで目的達成したのでこれはおしまい。