1. ホーム
  2. Git

解决[email protected]。パーミッションが拒否されました (publickey)。リモートリポジトリから読み取れませんでした

2022-02-11 01:44:41

原因分析

Permission denied (publickey) publickeyに対するパーミッションがありません。このエラーは一般的に次の2つの理由によるものです。

  • クライアントとサーバーでssh鍵が生成されていない
  • クライアントとサーバーのsshキーが一致しない

原因がわかったので、sshの鍵を再生成して、サーバー側も再設定すれば解決です。

クライアント側のssh鍵の生成

ssh-keygen -t rsa -C "[email protected]"

[email protected] これを自分のメールアドレスに変更すると、途中でパスワードか何かの入力を求められますが、気にせずずっと入力すると、sshキーが生成されます。(再生成すると前のsshキーに上書きされます)。 

その後、ターミナルで再度コマンドを実行します。

ssh -v [email protected]


<イグ

最後の2つの文章が表示されます

  No more authentication methods to try.  
  Permission denied (publickey).


ターミナルで再度以下のコマンドを実行します。

ssh-agent -s 

<イグ

そして、実行後

ssh-add ~/.ssh/id_rsa

$ ssh-add ~/.ssh/id_rsa
認証エージェントへの接続を開くことができませんでした。
この場合、使用することができます。 ssh-agent bash  コマンドを実行し、再度 ssh-add ~/.ssh/id_rsa_name このコマンドは問題ありません。
以下の通りです。

Identity追加:...これは、ssh鍵ファイルのパスの情報です。

サーバー側の設定

先ほど生成したid_rsa.pubを開き、中の内容をコピーして、githubアカウントのsettingsからSSH and GPG keysで新しいSSHキーを作成し、id_rsa.pubの内容をキーにコピーし、完了したらSSHキーを追加してください。

タイトルはランダムです 

キーを検証する

ssh -T [email protected] 
$ ssh -T [email protected]
Hi 470812087! You've successfully authenticated, but GitHub does not provide shell access.


$ ssh -T [email protected]
Hi 470812087! You've successfully authenticated, but GitHub does not provide shell access.


<イグ

xxxさん、こんにちは。認証は成功しましたが、GitHub はシェルアクセスを提供していません。問題は解決しました!