SSHキーを設定する
VScode でコミットしようとした際に、
Please make sure you have the correct access rights and the repository exists.
とエラーが出る時がありますよね。
エラー文を翻訳すると、
"正しいアクセス権があり、リポジトリが存在することを確認してください。"
となりますが、どうして許可されていないのか、どのようにしたらアクセス権限が得られるのか、わからないですよね。
Git ログを開いても何が書かれているのか、よくわからない。。
今回は、このエラーの対処法についてお伝えします。
結論から言うと、SSH キーを設定することで、リモートサーバー(GitHub や Git Bash のリポジトリなど)にアクセスするための認証方法を設定できます。
手順は以下のようになります。
1. /.ssh ディレクトリに SSH キーを追加する
2. .pub のキーを GitHub に設定する
3. /.ssh ディレクトリ内で config ファイルの設定をする
4. ターミナルで、キーが正しく設定できているか確認する
一つ一つ追っていきましょう!
【/.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 ロールでは、テクノロジーに関する情報をまとめて発信しています。
また、おすすめのガジェットについて幅広く紹介するガジェロールもあります。
ガジェットやソフトを使うエンジニア・クリエイターのみなさん、ぜひご覧ください。