LoginSignup
98
92

More than 3 years have passed since last update.

GitエラーPermission denied (publickey).の解決方法

Last updated at Posted at 2020-06-06

Gitでpushしようとしたらエラーになりました。

エラーメッセージ

ターミナルから返ってきたエラー文は下記の通りです。

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

リモートリポジトリが読み込めず、アクセス権を作成してくださいとのことでした。

解決方法

SSH key(公開鍵)を登録、もしくは再設定するとpushできるようになるとの事でしたので試してみました。

登録の流れ

  • 公開鍵の生成
  • 公開鍵をコピー
  • GItHubにペーストして登録

SHHコマンドとは?

SSHは暗号技術を使い、リモートホストで安全にコマンドを実行するためのプロトコルで、「ssh」はそのプロトコルを利用してリモートサーバーを遠隔操作するコマンドです。 @IT

SHHコマンドを使えば、リモートホスト(SSHサーバー)にログインできるようになるとの事です。
なるほど、勉強になりました。

SHH Keys(公開鍵)の設定方法

.sshディレクトリに移動して、

$ cd ~/.ssh

コマンドを実行します。

$ ssh-keygen

id_rsa.pubにpublic key(公開鍵)が生成されます。

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa): 
/Users/xxxx/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
our identification has been saved in /Users/xxxx/.ssh/id_rsa.
Your public key has been saved in /Users/xxxx/.ssh/id_rsa.pub.

pbcopyのコマンドでコピーして、

$ pbcopy < ~/.ssh/id_rsa.pub

GitHubのsetting画面から「New SSH」で公開鍵をペーストします。
公開鍵が正しければ、以下の画面になります。

SSH_Keys.png

公開鍵が間違っていると、下記のエラーが返ります。

Key is invalid. You must supply a key in OpenSSH public key format.

下記のコマンドをうって、

$ ssh -T git@github.com

successfully authenticatedを返ってくれば、登録が成功しています。

Enter passphrase for key '/Users/xxxx.ssh/id_rsa':
Hi user-name! You've successfully authenticated, but GitHub does not provide shell access.

Google翻訳してみると、「認証に成功しましたが、GitHubはシェルアクセスを提供しません。」との事。

シェルアクセスはできませんが、SSHアクセスはできるようになりました。

98
92
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
98
92