7

私が得ているのと同じエラーメッセージを引用しているスタック記事がたくさんあります。

別のコンピューターでherokuセットアップドキュメント全体を調べたところ、すべてが完全に機能しました。これが機能しない理由はわかりませんが、機能する必要があります。

私が走るとき:

> git push -v heroku master

Pushing to git@heroku.com:lit-tor-7969.git
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Stackのすべてのソリューションには、sshキーのリセットが含まれており、sshキーは問題ないと思います。私はMacOSXを使用していて、次のコマンドを実行しました。

heroku keys:clear
heroku keys:add

したがって、gitがリポジトリフォルダ内で手動で生成したキーではなく、/ Users / bishopz/.sshキーを使用しているように見えます。

以下の回答に加えて、この記事は多くの洞察を提供しているようです: キーフィンガープリントのためにHerokuにプッシュできません

.sshディレクトリを完全に削除してみました。走った

heroku keys:clear
ssh-add -D #to remove all ssh identities
ssh-keygen -t rsa -C "email@gmail.com" -f  ~/.ssh/id_rsa_heroku
ssh-add ~/.ssh/id_rsa_heroku
heroku keys:add ~/.ssh/id_rsa_heroku.pub
git push heroku master

そして今取得:

!  Your key with fingerprint 27:5f:64:4e:2e:f0:41:5b:62:a9:95:d2:02:df:27:85 is not authorized to access lit-tor-7969.
fatal: The remote end hung up unexpectedly

への応答

ssh -vvv git@heroku.com

今です:

debug1: Host 'heroku.com' is known and matches the RSA host key.
debug1: Found key in /Users/bishopz/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Offering RSA public key: /Users/bishopz/.ssh/id_rsa_heroku
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to heroku.com ([50.19.85.132]:22).

助けていただければ幸いです。誰かが私に役立つ回答を投稿できれば、新しい報奨金を開始します。

4

4 に答える 4

7

この質問は、実際にはsshよりもgitに関するものではありません。:)

Herokuは、publickeyによる認証のみを許可するsshを使用するgitを使用します。(しかし、それはすでに明らかだと思います。)

heroku keys:add公開鍵をherokuに送信します。明示的なキーを指定しない限り、を使用します~/.ssh/id_[rd]sa.pub

正常に認証するには、一致する秘密鍵を提示する必要があります。特に指定がない限り、sshはを使用します~/.ssh/id_[rd]saが、権限が緩すぎると読み取りを拒否します。(詳細については、「man sshファイル」セクションを参照してください。)

権限が適切かどうかを確認する簡単な方法は、エージェントにキーを追加することです。 ssh-add ~/.ssh/id_[rd]sa

これは、エージェントにキーを追加するか(で確認ssh-add -L)、間違った権限について不平を言う必要があります。(そもそもエージェントが実行されていない場合は、「ssh-agentbash」で開始できます。)

キーをエージェントに追加すると、エージェントが認証を処理し、Gitが問題なく接続できるようになります。:)

于 2012-12-04T22:05:13.443 に答える
4

さて、私はそれを解決することができました。これらの回答のいくつかは役に立ちました。2つのことが起こったようです。

まず、この記事に基づいて、sshキーが混乱していました。これは、.sshディレクトリを削除することで解決されました(もちろん、これにより.sshを使用する他のもののすべての資格情報が削除されましたが、後で再作成できます)。

heroku keys:clear
ssh-add -D #to remove all ssh identities
ssh-keygen -t rsa -C "email@gmail.com" -f  ~/.ssh/id_rsa_heroku
ssh-add ~/.ssh/id_rsa_heroku
heroku keys:add ~/.ssh/id_rsa_heroku.pub    

次に、この記事への回答に基づいて、sshキーのトラブルシューティングの過程でアプリ名が何らかの形で変更されました。アプリ名は/repository_folder/.git/configで手動で編集する必要がありました

正しいアプリ名を取得するために、Webでheroku.comにログインし、構成ファイルを更新しました。

含まれています

[remote "heroku"]
    url = git@heroku.com:my_new_app_name.git
    fetch = +refs/heads/*:refs/remotes/heroku/*

投稿されたすべての提案に感謝します!ついに新しいアプリにたどり着くことができてとてもうれしいです!

- アップデート -

コンピュータを再起動するたびに、このコマンドを再実行する必要があります。.profileなどを追加できますが、注意する価値があると思いました。

于 2012-12-09T03:28:30.387 に答える
2

設定によって異なります。〜/ .ssh /ディレクトリに、herukoにプッシュするときに使用する公開鍵として使用するファイルを設定する構成ファイルがある場合があります。

例(~/.ssh/config):

Host 127.0.0.1 #Use Heroku's IP
IdentityFile ~/.ssh/use_this_key

その場合は、〜/ .ssh/configファイルの設定を変更してください

乾杯

于 2012-11-29T03:08:01.203 に答える
0

.sshディレクトリとリポジトリディレクトリの両方の権限は555です。

ssh接続で重要なのは、次のグループおよびその他のアクセス許可です。

  • /home/user/.ssh
  • /home/user
  • /home

(/ home / userをホームディレクトリの実際のパスに置き換えます)

アイデアは、グループおよびその他の属性のアクセス許可.ssh とそのすべての親ディレクトリが書き込み可能であってはならないということです

555.sshには問題ありませんが、700をお勧めします。
親ディレクトリを確認します:755または555まで/(「2」、「3」、または「6」はありません。グループまたはその他の書き込み可能なディレクトリを示します)。

于 2012-12-01T19:54:19.690 に答える