GitHubに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回目
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のページを開く。
SSHキーの登録ページを開く
左側のメニューから「SSH and GPG keys」のページを開き、「New SSH key」を押す。
登録ページが開く。
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接続はをテストするためのコマンドはこれ。
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」∠)_
というわけで目的達成したのでこれはおしまい。
ディスカッション
コメント一覧
まだ、コメントがありません