web-dev-qa-db-ja.com

git push herokuマスターの許可が拒否されました

Ruby.railstutorialをフォローしています。コマンド「git Push heroku master」を実行すると、このエラーが発生します。

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

私はRails app "/ Users/lexi87/Rails_projects/first_app"の中にいます。解決策はありますか?

52

このようなエラーを回避する最善の方法は、herokuの余分なキーではなく、1つの公開/秘密キーペアを使用することです。このようにして、あなた(またはシステム)は、herokuにログインするために間違ったキーを選択することはできません。

このエラーが発生した場合、何か間違ったことをしていることになります。このサイトを確認してください: https://devcenter.heroku.com/articles/keys

このエラーが発生した場合、最も良い方法は、不要なキーを削除して1つだけを使用することです。

システムに複数のキーペアが必要な場合は、herokuに1つのキーを設定できます。これは、次のコマンドで実行されます。

heroku keys:add
67
Fa11enAngel

Github WindowsクライアントがインストールされているWindows 7ユーザー向けのヘルプ:

Heroku toolbeltがgit_hub公開キーを見つけてアップロードしたと報告しても、「git Push heroku master」は失敗しました。以下の手順を実行した後、正常に動作します。

  1. ユーザーフォルダーが存在しない場合は、.sshフォルダーを作成します。存在する場合は、その中のすべてのファイルを削除します(これは、sshキーを使用してゼロから開始することに問題がないことを前提としています)。

  2. Windowsエクスプローラーで、.sshフォルダーを右クリックし、コンテキストメニューからGit bashを選択します。これは、Github Windowsクライアントソフトウェアと共にインストールされます。

  3. Bashウィンドウに「ssh-keygen -t rsa -C "[email protected]」と入力します。プロンプトが表示されたら、パスフレーズを入力します(これを紛失しないでください)。

  4. Bashシェルウィンドウを閉じます。

  5. プロジェクトのルートにあるcmdプロンプトから、heroku keys:addと入力します。これにより、/。sshファイルから作成したキーをHerokuに見つけてアップロードします。

これで、git Push heroku masterと入力して、アプリをHerokuにプッシュできます。注:完了したら、新しく生成されたssh公開キーをGithubアカウントに追加する必要があります。

13
mjulmer

私は同じ問題に直面しました。 .sshフォルダーには、「Known Hosts」というファイルがありました。動作しなかった新しいsshキーを削除して作成しようとし続けました。最後に、「既知のホスト」を含む.sshのすべてを削除し、次を使用して新しいrsaキーを作成しました。

ssh-keygen -t rsa

次に、次を使用してこの新しいキーをherokuに追加しました。

heroku keys:add

次に、新しいherokuリポジトリを作成し、アプリをプッシュしました。

heroku create
git Push heroku master
8
Adam Labi
ssh-keygen -t rsa

既存のキーにリンクすることもできるため、上記はオプションです。 Herokuは、次のステップでキーを選択するよう求めます。

heroku keys:add

新しく作成したキーまたは既存のキーを追加します。それでも問題が発生する場合は、次の手順を実行して、マシンのsshキーのリストにキーを追加する必要があります。

ssh-add ~/.ssh/name_of_your_rsa

sshが追加されたことを確認します

ssh-add -l

これにより、Push to Herokuのリモートリポジトリにアクセスできるようになります。

4
ajhino

oSXでは、同じ問題が発生していました。

no such identity: /Users/me/.ssh/yourPrivateKey: No such file or directory
Permission denied (publickey).
fatal: Could not read from remote repository.

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

Ssh-keygen -t rsaで新しいキーを作成してから、heroku keys:addで追加しようとしましたが、役に立ちませんでした。

次に、〜/ .ssh /にconfigという名前のファイルを見つけました。ファイル内には次のようなものがありました。

ServerAliveInterval 300
ServerAliveCountMax 3

Host heroku.com
    user git
    hostname heroku.com
    identityfile ~/.ssh/yourPrivateKey

だから私はyourPrivateKeyを秘密鍵のファイル名に変更しました(-id_rsaデフォルトで)aaandそれは働いた:)

2
wiherek

Windowsで作業している場合は、Powershell /コマンドプロンプトの代わりにgit-bashを使用してください。

Sshキーをリセットするだけの場合:

  1. ユーザーの.sshディレクトリを削除します
  2. git-bashを開く
  3. ssh-keygen -t rsa
  4. heroku keys:add

その後、Git Pushを実行できます。

0
Guildenstern70

キーを作成しました

ssh-keygen -t rsa

id_rsa(私の場合はheroku)とは異なるファイル名を使用しました。キーをherokuに追加しました

heroku keys:add

Masterブランチをherokuにプッシュしようとすると、常に次のエラーが表示されました。

$ git Herokuマスターをプッシュ
ホスト 'heroku.comの信頼性
(50.19.85.132) 'は確立できません。 RSAキーフィンガープリントは
8b:48:5e:67:0e:c9:16:47:32:99:87:0c:1f:c8:60:bb本当によろしいですか
接続を続行しますか(はい/いいえ)? yes警告:永続的に追加されました
'heroku.com、50.19.85.132'(RSA)を既知のホストのリストに追加します。許可
拒否(公開鍵)。致命的:リモートリポジトリから読み取ることができませんでした。

正しいアクセス権があり、リポジトリが存在することを確認してください。

Gitが別のssh-accessのid_rsaキーのみを使用していることに気付きました(git guiで確認できます:Help-> SSH keys)。

.sshディレクトリの名前を変更しましたC:\ Users \%username%.sshから。ssh.bakとmyheroku秘密鍵と公開鍵(。ssh.bakディレクトリ)を新しく作成された。sshディレクトリに追加し、id_rsa(およびid_rsa.pub)という名前を付けました。

プッシュは期待どおりに動作するようになりました。

git Push heroku master