GitHubをSSHで使う方法を検索すると、さまざまな環境のいろいろな方法が出てきて、どれが正しいのかわからない。(正確にはどれも正しいのだが、自分の環境で実現可能かどうかがわからない。)そこで、最もシンプルで一般的だと思う組み合わせを実際に試してみた結果を記す。
【注意】 eval "$(ssh-agent -s)"
するとか、ssh-add
するとか、OpenSSH クライアント/サーバーをインストールするなどの方法もあるが、Git Bashのプロセス限定だったり、個人環境に依存することもある。少なくともここで紹介する方法は、2台のWindows 10とUbuntu Desktop 20.04で動作を確認している。
Windowsだけの準備
Windows 10の中で眠っているSSH Agentを起動する。
(参考:栄諧情報システム株式会社「Windows10 の OpenSSH で ssh-add をすると警告が出て鍵を登録できない」)
- スタートメニュー(右クリック)から「コンピューターの管理」→「サービスとアプリケーション」→「サービス」→「OpenSSH Authentication Agent」のダイアログを開く。
- スタートアップの種類を「自動」に変更する。
- サービスの状態を「開始」に変更する。
SSH Keyの作成
SSHで使用する公開鍵を作る。
(参考:Qiita GakuNaitou「gitでPlease make sure you have the correct access rights and the repository exists. が出た時の対処法」)
- WindowsはGit Bashを、Ubuntu(Linux)ならbash(端末)を起動する。
- ~/.ssh に移動する。ファイルは存在しない方が望ましい。
- known_hosts ファイルが存在する場合、github の項目があったら消しておく。
-
ssh-keygen -t rsa -C ""
を実行して公開鍵を作成する。パスフレーズは入力しない。 - id_rsa(秘密鍵)と id_rsa.pub(公開鍵)が作成されていることを確認する。
- config ファイルを以下のとおりに作成する。
Host github
HostName github.com
IdentityFile ~/.ssh/id_rsa
User git
GitHubの設定
公開鍵をGitHubに登録する。
- GitHubにサインインする。
- 右上メニューから「Settings」→「SSH and GPG keys」の画面に移動して、ボタン「New SSH key」から登録画面を開く。
- 「Title」にはパソコン名などを入力、「Key」には id_rsa.pub(公開鍵)のテキストを貼り付ける。最後にボタン「Add SSH Key」で登録する。
Gitの動作確認
ここまでで設定のすべてが完了した。もしも期待した動作をしない場合、手順を間違えているか、環境に問題があると思われる。
- bashで
ssh git@github.com
を実行して接続確認をする。 - ~/.ssh/known_hosts ファイルが作成されて、github の項目が追加される。
- 適当なローカルリポジトリに移動して、
git fetch
とかgit pull
してみる。 - 以降、どのシェルでgitコマンドを打っても、Visual Studio CodeのGit Graphでfetchしても、何も聞かれずに済む。
以上