PCロール

PCロール

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

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

VScode でコミットしようとした際に、

code
編集モード
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 キーを追加する】

まず、ターミナルを開き、ホームディレクトリに移動します。

code
編集モード
cd ~

ホームディレクトリの中の、.ssh ディレクトリに移動します。

code
編集モード
cd .ssh

※ .ssh フォルダはデフォルトで隠しフォルダとなっています。Finder から直接確認したい場合は、MacOS では「command + shift + .」を押して隠しファイルを表示させることができます。 こちらの記事も参考にしてみてください!

次に、SSH キーを作成します。

code
編集モード
ssh-keygen -t ed25519 -C "<GitHubに登録したメールアドレス>"

例えば、pcroll@example.comで登録をしている場合

code
編集モード
ssh-keygen -t ed25519 -C "pcroll@example.com"

を実行すれば OK です。

SSH キーを保存するファイルのパスを指定します。

code
編集モード
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に書き換えます。

code
編集モード
:/Users/hoge/.ssh/github

と入力してください。

最後に、パスフレーズを設定します。

code
編集モード
Enter passphrase (empty for no passphrase):

のようにパスフレーズを入力するように求められるかもしれません。 パスフレーズを設定してもいいですが、エンターを押すだけでも問題ありません。 再入力の際も同様にエンターを押してください。

code
編集モード
The key's randomart image is:

の後にアートのような絵が表示されれば成功です!

【.pub のキーを GitHub に設定する】

まず、SSH エージェントを起動します

code
編集モード
eval "$(ssh-agent -s)"

を実行して、

code
編集モード
Agent pid <数字5桁>

が出力されることを確認します。

次に、.pub の SSH キーをコピーします

code
編集モード
.ssh % cat github.pub | pbcopy

を実行してコピーします。 catコマンドは簡単にいうと、ファイルの内容を表示するコマンド、pbcopyは、その出力をコピーするコマンドです。

最後に、GitHub で SSH キーを設定します

GitHub にログインして、ダッシュボード画面のドロワーからSettingsに移動します。

ドロワー

次に、左側のメニューで【SSH and GPG keys】を選択します。

メニュー

右上の緑のボタン【New SSH key】を押します。

SSH

Title

自由に決めてもらって構いません。 GitHub 上での SSH キーはデバイス毎に割り振られるため、MacBook を使っている場合はmac-sshkeyなどでしょうか。

Key type

初期設定と同様、Authentication Keyで大丈夫です。

Key

ここにコピーした SSH キーを貼り付けます。

すべて入力したら、【Add SSH key】を押します。

【/.ssh ディレクトリ内で config ファイルの設定をする】

まず、以下のコマンドを実行して VScode を開きます。

code
編集モード
.ssh % code .

※ コマンドでなくても、VScode で.ssh ディレクトリを開くことができれば問題ありません。

次に、.ssh ディレクトリ直下にconfigファイルを作成します。

configファイルの中身は以下のようにします。

code
編集モード
Host github.com
    User git
    Identityfile ~/.ssh/github

※保存する際にインデントがズレる場合は、VScode 右下の【言語モードの選択】の部分でShell Scriptを選択します。

config

こちらのようになれば設定は完了です!

【ターミナルで、キーが正しく設定できているか確認する】

最後に、ターミナルで以下のコマンドを実行します。

code
編集モード
ssh -T git@github.com

これを入力して、

code
編集モード
Hi <user-name>! You've successfully authenticated, but GitHub does not provide shell access.

と出力されれば成功です!

これを確認したのち、VScode で再度【ブランチの発行】ボタンを押してみてください。

恐らく無事にブランチを発行することができたかと思います!

何か別のエラーが出た、エラーが解決しなかったという場合は、Twitter の DM になんでもお問い合わせください!

以上の手順はこちらの公式ドキュメントを参考にしています。不明点などありましたら、公式ドキュメントも読んでみてください。

おわりに

最後までご覧いただきありがとうございます。

PC ロールでは、テクノロジーに関する情報をまとめて発信しています。

また、おすすめのガジェットについて幅広く紹介するガジェロールもあります。

ガジェットやソフトを使うエンジニア・クリエイターのみなさん、ぜひご覧ください。

ガジェロール | ガジェットの巻物

PC ロール | PC の巻物

← Back to home