0

ブログ (Octopress) を github にプッシュしようとしたところ、次のエラーが発生しました。

MacBook-Air:octopress bdeely$ git push origin source
Permission denied (publickey).
fatal: Could not read from remote repository.

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

SSH キーを生成して保存し、SSH キー設定で GitHub アカウントにリンクしましたが、先に進んでステータスを確認したところ、同じエラーが発生しました。

MacBook-Air:.ssh bdeely$ ssh -T git@github.com
Permission denied (publickey).

これに加えて、github のヘルプ ページを確認し、次のことを行ったところ、次のエラー メッセージが表示されました。

MacBook-Air:~ bdeely$ ssh-add -l
The agent has no identities.

誰が何が間違っているのか、どうすれば修正できるのか知っていますか?

4

5 に答える 5

3

次のコマンドに従います。

    mkdir ~/.ssh //フォルダが存在しない場合...
    cd ~/.ssh

    ssh-keygen -t rsa -C "youremail@somewhere.gr"
    # キーを保存するファイルを要求されたら Enter キーを押します。
    #パスフレーズを入力

最後に、id_rsa.pubを github アカウントにコピーします。

于 2013-08-17T21:25:46.993 に答える
1

これがお役に立てば幸いです:

私は同じ問題を抱えていて、非常識な欲求不満で目を離そうとしていました。オンラインで何も答えが得られgit pushず、URLを正確に指定せずにコマンドを使用しようとしていたため(これにより、私が信じている問題も解決できる可能性があります)、接続がどのように失敗したかわかりませんでした。

間違ったssh IDを自動的に提供していたオーバーライドすることになっているもの.ssh/configを使用しても、2 つの異なるキーを持つ 2 人のユーザー用に正しくセットアップしました。IdentitiesOnly yesssh-agent

ローカルリポジトリの構成を調べたところ、ようやく問題に気づきました-それはエントリでした

[remote "origin"]
  url = git@github.com:{my-username}/{my-repo-name}.git

.ssh/configファイル内の構成は両方のユーザーに同じエントリを使用していましたが、私はこれらすべてにまったく慣れていないため、正しくオーバーライドするには、正確な URL を指定する必要があり、ファイル内の特定の IDが無視されるHostName github.comことに気付きませんでした。リストされた最初のキー(私の場合は間違っていました)がデフォルトで使用されます。ssh-agent.ssh/configssy-agent

ローカル リポジトリの URL を に変更することでこれを修正しurl = git@github-personal:{my-username}/{my-repo-name}.gitましHost github-personal.ssh/config

これを解決する別の方法は、コマンド自体の URL でユーザーを指定することgit pushです。さらに良いのは、この私自身のくだらない方法を解決した後に投稿で説明されている解決策です。

https://superuser.com/questions/272465/using-multiple-ssh-public-keys

非常に一般的と思われるこのエッジケース (SSL を使用して 1 つのマシンから 2 つの異なる github アカウントにアクセスする) の解決策を提供したり、適切に説明したりする公式ソースがないとは信じられません。

于 2013-11-26T06:43:02.190 に答える
0

私は同じ問題を経験しました。その理由は、キーファイルを別のフォルダーに移動したためです。それらを元の場所に戻すと、正常に機能しました。

于 2016-04-06T09:49:14.757 に答える