PCロール

PCロール

SSHキーを設定する

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】を押します。

SSH

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を選択します。

config

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

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

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

ssh -T git@github.com

これを入力して、

Hi <user-name>! You've successfully authenticated, but GitHub does not provide shell access.

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

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

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

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

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

おわりに

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

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

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

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

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

PC ロール | PC の巻物