次の問題があります。
$ 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 [email protected]
出力が良好に見え、正しく認証されました。
さらに確認していると、次のことに気付きました。
$ 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.
Arch Linuxを使用しています。どんな助けでも大歓迎です!前もって感謝します!
同様の問題があり、次のコマンドを実行して既知のキーのリストにキーを追加することで問題を解決しました。
ssh-add ~/.ssh/id_rsa
それがあなたの問題も解決することを願っています。 ;)
コンソールで行う必要があります(PuTTY sshクライアントを使用する場合):
キーが存在しない場合、キーを生成します。
cd ~/.ssh && ssh-keygen -lf ~/.ssh/id_rsa.pub
このステップで入力したパスワードを忘れないでください!
公開キーを画面に出力します。
cd ~/.ssh && cat id_rsa.pub
この文字列をクリックしてコピーし、マウスポインターを開始出力から終了に移動します。押す必要はありません Ctrl + V またはその他のキー。
GitHubでアカウントにログインし、この公開キーを https://github.com/settings/ssh に追加します
これで、gitをローカルで使用できます。
まだ読んでいない場合は、GitHubヘルプページでこのエラーを確認する必要があります。
この問題が発生するたびに、それはそのページにリストされた最後の問題によるものでした。GitHubアカウントに接続された現在のワークステーションからの公開キーがありませんでした。もちろん、GitHubは アカウントに公開キーを添付する方法 の手順も提供します。
tl; dr
現在の公開キーがGitHubアカウントに添付されていることを確認してください。
ssh -vT [email protected]
を直接テストして動作したので、これで問題が解決するとは思わないが、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
の子として実行されており、シェルが終了するとエージェントがシャットダウンします。
Ubuntuで同じ問題に直面した後、Sudo
なしでremote
にアクセスすると、Sudo
モードになっていることに気付きました。
それが私が問題を取り除く方法です、それが助けになることを願っています。
許可が拒否されました(公開キー)。今日、この問題に遭遇しましたが、最終的に解決策を見つけ、問題を解決しました。
たぶん、次の問題を確認する必要があります:
ssh -V [email protected]
私の場合、デフォルト以外のSSHキーペアパスを使用していたため、GitLabでこの問題が発生しました。 @NEOの答えは完璧に機能します。
ssh-add ~/.ssh/other_id_rsa
ただし、新しいターミナルを開くたびにこれを行う必要がありました。
この変更を永続的にするには、~/.ssh/config
そして次を追加します。
Host gitlab.company.com
RSAAuthentication yes
IdentityFile ~/.ssh/config/private-key-filename
より詳細な情報については、 gitlabのドキュメント をご覧ください。