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"の中にいます。解決策はありますか?
このようなエラーを回避する最善の方法は、herokuの余分なキーではなく、1つの公開/秘密キーペアを使用することです。このようにして、あなた(またはシステム)は、herokuにログインするために間違ったキーを選択することはできません。
このエラーが発生した場合、何か間違ったことをしていることになります。このサイトを確認してください: https://devcenter.heroku.com/articles/keys
このエラーが発生した場合、最も良い方法は、不要なキーを削除して1つだけを使用することです。
システムに複数のキーペアが必要な場合は、herokuに1つのキーを設定できます。これは、次のコマンドで実行されます。
heroku keys:add
Github WindowsクライアントがインストールされているWindows 7ユーザー向けのヘルプ:
Heroku toolbeltがgit_hub公開キーを見つけてアップロードしたと報告しても、「git Push heroku master」は失敗しました。以下の手順を実行した後、正常に動作します。
ユーザーフォルダーが存在しない場合は、.sshフォルダーを作成します。存在する場合は、その中のすべてのファイルを削除します(これは、sshキーを使用してゼロから開始することに問題がないことを前提としています)。
Windowsエクスプローラーで、.sshフォルダーを右クリックし、コンテキストメニューからGit bashを選択します。これは、Github Windowsクライアントソフトウェアと共にインストールされます。
Bashウィンドウに「ssh-keygen -t rsa -C "[email protected]
」と入力します。プロンプトが表示されたら、パスフレーズを入力します(これを紛失しないでください)。
Bashシェルウィンドウを閉じます。
プロジェクトのルートにあるcmdプロンプトから、heroku keys:add
と入力します。これにより、/。sshファイルから作成したキーをHerokuに見つけてアップロードします。
これで、git Push heroku master
と入力して、アプリをHerokuにプッシュできます。注:完了したら、新しく生成されたssh公開キーをGithubアカウントに追加する必要があります。
私は同じ問題に直面しました。 .sshフォルダーには、「Known Hosts」というファイルがありました。動作しなかった新しいsshキーを削除して作成しようとし続けました。最後に、「既知のホスト」を含む.sshのすべてを削除し、次を使用して新しいrsaキーを作成しました。
ssh-keygen -t rsa
次に、次を使用してこの新しいキーをherokuに追加しました。
heroku keys:add
次に、新しいherokuリポジトリを作成し、アプリをプッシュしました。
heroku create
git Push heroku master
ssh-keygen -t rsa
既存のキーにリンクすることもできるため、上記はオプションです。 Herokuは、次のステップでキーを選択するよう求めます。
heroku keys:add
新しく作成したキーまたは既存のキーを追加します。それでも問題が発生する場合は、次の手順を実行して、マシンのsshキーのリストにキーを追加する必要があります。
ssh-add ~/.ssh/name_of_your_rsa
sshが追加されたことを確認します
ssh-add -l
これにより、Push to Herokuのリモートリポジトリにアクセスできるようになります。
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それは働いた:)
Windowsで作業している場合は、Powershell /コマンドプロンプトの代わりにgit-bashを使用してください。
Sshキーをリセットするだけの場合:
その後、Git Pushを実行できます。
キーを作成しました
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