SSHキーを設定する ("Please make sure you have the correct access rights and the repository exists."の対処法)

VScode でコミットしようとした際に、
Please make sure you have the correct access rights and the repository exists.
とエラーが出る時がありますよね。
エラー文を翻訳すると、
"正しいアクセス権があり、リポジトリが存在することを確認してください。"
となりますが、どうして許可されていないのか、どのようにしたらアクセス権限が得られるのか、わからないですよね。
Git ログを開いても何が書かれているのか、よくわからない。。
今回は、このエラーの対処法についてお伝えします。
結論から言うと、SSH キーを設定することで、リモートサーバー(GitHub や Git Bash のリポジトリなど)にアクセスするための認証方法を設定できます。
手順は以下のようになります。
- /.ssh ディレクトリに SSH キーを追加する
- .pub のキーを GitHub に設定する
- /.ssh ディレクトリ内で config ファイルの設定をする
- ターミナルで、キーが正しく設定できているか確認する
一つ一つ追っていきましょう!
【/.ssh ディレクトリに SSH キーを追加する】
まず、ターミナルを開き、ホームディレクトリに移動します。
cd ~
ホームディレクトリの中の、.ssh ディレクトリに移動します。
cd .ssh
※ .ssh フォルダはデフォルトで隠しフォルダとなっています。Finder から直接確認したい場合は、MacOS では「command + shift + .」を押して隠しファイルを表示させることができます。 こちらの記事も参考にしてみてください!
次に、SSH キーを作成します。
ssh-keygen -t ed25519 -C "<GitHubに登録したメールアドレス>"
例えば、pcroll@example.comで登録をしている場合
ssh-keygen -t ed25519 -C "pcroll@example.com"
を実行すれば OK です。
SSH キーを保存するファイルのパスを指定します。
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/hoge/.ssh/id_ed25519):
という文章が表示されると思います。
:の後に、保存するファイルのパスを指定します。
GitHub の SSH キーを指定する場合は、ファイル名はgithub
などで良いでしょう。
id_ed25519
は例ですので、この部分をgithub
に書き換えます。
:/Users/hoge/.ssh/github
と入力してください。
最後に、パスフレーズを設定します。
Enter passphrase (empty for no passphrase):
のようにパスフレーズを入力するように求められるかもしれません。 パスフレーズを設定してもいいですが、エンターを押すだけでも問題ありません。 再入力の際も同様にエンターを押してください。
The key's randomart image is:
の後にアートのような絵が表示されれば成功です!
【.pub のキーを GitHub に設定する】
まず、SSH エージェントを起動します
eval "$(ssh-agent -s)"
を実行して、
Agent pid <数字5桁>
が出力されることを確認します。
次に、.pub の SSH キーをコピーします
.ssh % cat github.pub | pbcopy
を実行してコピーします。
cat
コマンドは簡単にいうと、ファイルの内容を表示するコマンド、pbcopy
は、その出力をコピーするコマンドです。
最後に、GitHub で SSH キーを設定します
GitHub にログインして、ダッシュボード画面のドロワーからSettings
に移動します。
次に、左側のメニューで【SSH and GPG keys】を選択します。
右上の緑のボタン【New SSH key】を押します。
Title
自由に決めてもらって構いません。
GitHub 上での SSH キーはデバイス毎に割り振られるため、MacBook を使っている場合はmac-sshkey
などでしょうか。
Key type
初期設定と同様、Authentication Key
で大丈夫です。
Key
ここにコピーした SSH キーを貼り付けます。
すべて入力したら、【Add SSH key】を押します。
【/.ssh ディレクトリ内で config ファイルの設定をする】
まず、以下のコマンドを実行して VScode を開きます。
.ssh % code .
※ コマンドでなくても、VScode で.ssh ディレクトリを開くことができれば問題ありません。
次に、.ssh ディレクトリ直下にconfig
ファイルを作成します。
config
ファイルの中身は以下のようにします。
Host github.com
User git
Identityfile ~/.ssh/github
※保存する際にインデントがズレる場合は、VScode 右下の【言語モードの選択】の部分でShell Script
を選択します。
こちらのようになれば設定は完了です!
【ターミナルで、キーが正しく設定できているか確認する】
最後に、ターミナルで以下のコマンドを実行します。
ssh -T git@github.com
これを入力して、
Hi <user-name>! You've successfully authenticated, but GitHub does not provide shell access.
と出力されれば成功です!
これを確認したのち、VScode で再度【ブランチの発行】ボタンを押してみてください。
恐らく無事にブランチを発行することができたかと思います!
何か別のエラーが出た、エラーが解決しなかったという場合は、Twitter の DM になんでもお問い合わせください!
以上の手順はこちらの公式ドキュメントを参考にしています。不明点などありましたら、公式ドキュメントも読んでみてください。
おわりに
最後までご覧いただきありがとうございます。
PC ロールでは、テクノロジーに関する情報をまとめて発信しています。
また、おすすめのガジェットについて幅広く紹介するガジェロールもあります。
ガジェットやソフトを使うエンジニア・クリエイターのみなさん、ぜひご覧ください。