51

次の問題があります。

$ git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

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

私はすでにこれを行っている接続を確認しました:

$ ssh -vT git@github.com

出力は良さそうです、私は正しく認証されました。

さらに調べてみると、次のことに気づきました。

$ ssh-add -l
The agent has no identities.

ssh-agentを実行しようとしましたが、何も変更されていません。

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-A1mhFqvqncuO/agent.766; export SSH_AUTH_SOCK;
SSH_AGENT_PID=767; export SSH_AGENT_PID;
echo Agent pid 767;
$ ssh-add -l
Could not open a connection to your authentication agent.

ArchLinuxを使用しています。どんな助けでも大歓迎です!前もって感謝します!

ここでGithub診断ヘルプ。

4

9 に答える 9

125

同様の問題が発生しました。次のコマンドを実行して、既知のキーのリストにキーを追加することで、問題を解決しました。

ssh-add ~/.ssh/id_rsa

それがあなたの問題も解決することを願っています。;)

于 2013-08-01T12:04:31.143 に答える
6

まだ読んでいない場合は、GitHubヘルプページでこのエラーを確認する必要があります。

エラー:許可が拒否されました(公開キー)

この問題が発生するたびに、そのページにリストされている最後の問題が原因でした。現在のワークステーションの公開鍵がGitHubアカウントに接続されていませんでした。もちろん、GitHubには、公開鍵をアカウントに添付する方法についての説明もあります。


tl; dr

現在の公開鍵がGitHubアカウントに添付されていることを確認してください。

于 2012-12-02T22:37:16.403 に答える
6

コンソールで行う必要があります(パテsshクライアントを使用する場合):

  1. キーが存在しない場合は、キーを生成します。

    cd ~/.ssh && ssh-keygen -lf ~/.ssh/id_rsa.pub
    

このステップで入力したパスワードを忘れないでください!

  1. 公開鍵を画面に出力します。

    cd ~/.ssh && cat id_rsa.pub
    
  2. クリックしてこの文字列をコピーし、マウスポインタを出力の開始から終了まで移動します。Ctrl+V以上のキーを押す必要はありません。

  3. GitHubにアカウントでログインし、この公開鍵をhttps://github.com/settings/sshに追加します

  4. これで、gitをローカルで使用できます。

于 2013-10-09T02:50:44.107 に答える
4

ssh -vT git@github.com直接テストして機能したので、これで問題が解決するとは思いませんが、ssh-agent不適切に使用しています。実行する必要があります

$ eval `ssh-agent -s`
Agent pid 767
$ ssh-add -l
The agent has no identities.

これにより、環境エクスポートコマンドが評価され、ssh-addおよびsshコマンドがエージェントと通信できるようになります。または、エージェントにシェルやターミナルなどを起動するように依頼すると、適切な環境がセットアップされます。

$ ssh-agent bash
$ ssh-add -l
The agent has no identities.

この場合、シェルはの子として実行されておりssh-agent、シェルが終了するとエージェントはシャットダウンします。

于 2013-06-14T20:35:04.050 に答える
3

私はUbuntuで同じ問題に直面しましたが、それがうまくいかずにsudoアクセスしただけで、モードになっていることに気付きました。remotesudo

それが問題が解決する方法です、それが役立つことを願っています。

于 2013-09-19T12:39:12.823 に答える
2

許可が拒否されました(公開鍵)。今日この問題に遭遇しましたが、ようやく解決策を見つけ、問題を解決することに成功しました。

次の問題を確認する必要があるかもしれません:</ p>

  1. あなたはgithubアカウントを持っています
  2. gitconfigユーザー名と-mail
  3. ssh-key pri / pubペアを生成し、公開鍵をgitアカウントに追加します。これが役立つ場合があることを確認してください:新しいssh鍵を生成し、 gitリポジトリをプッシュできません'permissiondenied'
  4. ssh-keyが正常に追加されたことを確認します。ssh -V username@github.com
  5. 幸運を!
于 2016-02-14T14:54:28.783 に答える
2

私の場合、デフォルト以外のSSHキーペアパスを使用していたため、GitLabでこの問題が発生しました。@NEOの答えは完璧に機能します:

ssh-add ~/.ssh/other_id_rsa

しかし、新しいターミナルを開くたびにこれをしなければなりませんでした。

この変更を永続的にするに~/.ssh/configは、以下を編集して追加する必要があります。

Host gitlab.company.com
RSAAuthentication yes
IdentityFile ~/.ssh/config/private-key-filename

詳細については、gitlabのドキュメントを確認してください。

于 2018-04-26T08:50:54.180 に答える
0

私はこれを試してみます(Gitにプッシュするとエラーコード403が返されます致命的:HTTPリクエストが失敗しました):

httpsプロトコルを使用して確実にログインできるようにするには、最初に認証クレデンシャルをgitRemoteURIに設定する必要があります。

git remote set-url origin https://yourusername@github.com/user/repo.git

次に、gitpushを試行するときにパスワードの入力を求められます。

于 2020-08-31T12:27:40.500 に答える
-1

致命的:「https:// ......」にアクセスできません:要求されたURLがエラーを返しました:コードをプッシュしてこのエラーが表示された場合、Windowsでこのアドレスをフォローすると403が返されます

⇒コントロールパネル\ユーザーアカウント\クレデンシャルマネージャー とGitHubで過去のアカウントを削除します

于 2020-09-30T06:34:48.917 に答える