私は一見簡単に修正できる問題の解決策を探して、何時間も探し続けました。私の検索で何も見つからなかったのではなく、私の検索で非常に多くの異なる解決策が見つかったのです。どれもうまくいきませんでした。
とにかく、MacのHerokuリポジトリからプッシュ、プル、またはフェッチすることができません。すべての試みは、私をあざけるかのように私に次のエラーを与えます:
'許可が拒否されました(公開鍵)。致命的:リモートリポジトリから読み取ることができませんでした。
私はさまざまな方法で修正しようとしました(そして再試行しました)。私が言ったように、私は過去2日間のかなりの時間をかけて、答えを探しました。私が試したもののいくつかを以下に示します。
GitHubリポジトリから問題なく取得できるため、ネットワーク接続ではないことがわかります(herokuのpingも機能します)。
その場しのぎのソリューションとして(永続的なものにならないように)、Ubuntu Amazon AWS ec2インスタンスにログインしました。 Herokuとの間のプルおよびプッシュは完全に機能します。このため、Macのsshキーに問題があるように感じます。 Herokuアカウントの下に両方のキーが表示されます。キーの最後のメールアドレスは重要ですか?
編集:私はGitHubからうまくプッシュおよびプルすることができます(ただし、sshを使用していません)。
この時点で、何でも試してみたいと思います。ありがとう!
私は自分の質問に対する答えを見つけたことを共有したいと思った。
私の問題を書き出すと、それがさらに明確になり、問題がどこにあると思われるのかをさらに調査しました:sshキー
私は正しかったことがわかりました。問題はキー自体にあるのではなく、既知のsshキーのローカルMacのリストに追加していなかったということです。そのため、Herokuアカウントに正しいキーがアップロードされていても、コンピューターでそのキーを見つけることができなかったため、Macで認証できませんでした。ソリューション?
ssh-add ~/.ssh/id_rsa
#and, to confirm it's been added to the known list of keys
ssh-add -l
https://help.github.com/articles/error-permission-denied-publickey を参考にしてください。
これはすでに回答済みです。しかし、将来的に他の人に役立つ可能性があるため、ソリューションを追加したいと思います。
一般的なキーエラーは、Permission denied (publickey)
です。 keys:add
を使用してHerokuに新しいキーを通知することで、これを修正できます。
要するに、次の手順に従ってください: https://devcenter.heroku.com/articles/keys
キーがない場合は、まずキーを作成する必要があります:
ssh-keygen -t rsa
次に、Herokuにキーを追加する必要があります:
heroku keys:add
まったく同じエラー(Windows 7)があり、原因は異なりました。私は別の方法でそれを解決したので、他の人のためにここに原因と解決策を追加すると思いました。
エラーはherokuを指しているように見えますが、実際にはエラーは"Heroku can't get to the git repository"
と言っていました。私はそれを作成し、同時に次々にアップロードしたため、すべてのサーバーで同じキーを持っていると誓いました。
このことにほぼ1日を費やした後、gitは実際のキーではなく指紋のみを表示していることに気付きました。キーがHDまたはherokuのキーと一致することを確認できませんでした。既知のホストファイルを見て、何を推測しました...各サーバーのキーが表示され、gitとherokuの公開キーが一致していないことが明確にわかりました。
1)キーフォルダー内のすべてのファイル、ウェブサイトを使用してgithubからキー、git bashおよびコマンドheroku keys:clear
を使用してherokuからキーを削除しました
2)githubの指示に従います here 新しいキーペアを生成し、公開キーをgitにアップロードします
3)git bash-
heroku keys:add
を使用して、同じキーをherokuにアップロードします。
これでgit Push heroku master
が機能します。
これは悪夢です。これが誰かの助けになることを願っています。
ブライアン
私が抱えていた問題は、GitHubアカウントにhttpsのみを使用していたことです。 GitHubアカウントがsshアクセス用に設定されていること、GitHubとherokuが同じ公開キーを使用していることを確認する必要がありました。これらは私がとったステップです:
〜/ .sshディレクトリに移動し、id_rsaおよびid_rsa.pubがある場合は削除します。必要ではないかもしれませんが、私は新しいキーから始めました。
$ cd ~/.ssh
$ rm id_rsa id_rsa.pub
Herokuにログインし、新しいサイトを作成して、公開キーを追加します。
$ heroku login
...
$ heroku create
$ heroku keys:add
$ git Push heroku master
Windows 8での私のやり方
Ssh-keygenを使用してディレクトリをシステムPATH変数に追加します。通常はC:\ Program Files(x86)\ Git\binです。
CMDを開き、C:\ Users\Me \に移動します
SSHキーを生成しますssh-keygen -t rsa
キーを保存するファイルを入力します(//.ssh/id_rsa):.ssh/id_rsa(デフォルトの誤ったパスを.ssh/somegoodname_rsaに変更します)
キーをHerokuに追加heroku keys:add
リストから作成したキーを選択します
アプリのディレクトリに移動して、美しいコードを作成します
Gitリポジトリを初期化git init
git add .
git commit -m 'chore(release): v0.0.1
Herokuアプリケーションの作成heroku create
アプリをデプロイするgit Push heroku master
アプリを開きますheroku open
次のように入力して、新しいsshキーを作成する必要があります-ssh-keygen -t rsa
次に追加する必要があります:-heroku keys:add
次に入力すると-heroku open
問題は解決されました。
とにかくそれは私のために働いた、あなたはそれを試してみることができる...
同様の問題があり、多くのことを試しました。最終的に私のために働いたのは、WindowsにGnuをインストールして( https://github.com/bmatzelle/gow/releases )、それがそのディレクトリ内ではなくsshツールを使用していたことを確認することでしたGitを使用するもの。テストをインストールしたら(環境のPATHにGit\binの前にあることを確認してください)
C:\Git\htest2>which ssh
C:\Program Files (x86)\Gow\bin\ssh.BAT
ここで説明するように、PuTTYとページェントを使用しました: http://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-on-windows-using-PuTTY-plink -pageant /
キーがherokuに送信されたら(heroku keys:add c:\ Users\Person.ssh\id_rsa.pub)、使用します
ssh -v <username>@heroku.com
スタックがPuTTYの使用を示していることを確認します。つまり、動作中のスタックです。
Looking up Host "heroku.com"
Connecting to 50.19.85.132 port 22
Server version: SSH-2.0-Twisted
Using SSH protocol version 2
**We claim version: SSH-2.0-PuTTY_Release_0.62**
Using Diffie-Hellman with standard group "group1"
Doing Diffie-Hellman key exchange with hash SHA-1
Host key fingerprint is:
ssh-rsa 2048 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1f:c8:60:ad
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Pageant is running. Requesting keys.
Pageant has 1 SSH-2 keys
Using username "*--ommitted for security--*".
**Trying Pageant key #0**
Authenticating with public key "rsa-key-20140401" from agent
Sending Pageant's response
Access granted
Opened channel for session
Server refused to allocate pty
Server refused to start a Shell/command
FATAL ERROR: Server refused to start a Shell/command
以前に実行されていて失敗したもの:
C:\Git\htest2>ssh -v <username>@[email protected]
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Connecting to heroku.com [50.19.85.156] port 22.
debug1: Connection established.
debug1: identity file /c/Users/Person/.ssh/identity type -1
debug1: identity file /c/Users/Person/.ssh/id_rsa type 1
debug1: identity file /c/Users/Person/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version Twisted
debug1: no match: Twisted
debug1: Enabling compatibility mode for protocol 2.0
**debug1: Local version string SSH-2.0-OpenSSH_4.6**
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host 'heroku.com' is known and matches the RSA Host key.
debug1: Found key in /c/Users/Person/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /c/Users/Person/.ssh/identity
debug1: Offering public key: /c/Users/Person/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: Trying private key: /c/Users/Person/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).
私は同じエラーを受け取りました、そして私は4つのsshキーを持っているので、私はフォローしようとしました:
ssh-keygen -t rsa
heroku keys:add
次に、4つのオプションが表示されます。
1) github_rsa.pub
2) id_boot2docker.pub
3) id_rsa.pub
4) sshkey.pub
3)、最新のものを選択します
次に、エラーを修正します。
私はこの方法を使用してこの問題を解決します
「ssh-agentを有効にする」
インストールする
Ssh-agentを有効にする
C:\ Program Files\Git\cmd
start-ssh-agent
私がエージェントを有効にした後のメッセージが消える
ここに表示されていないため、別のソリューションを追加したいと思います。私の問題は、herokuが間違ったURLにリンクしていたことです(URL名をいじり続けていたため)。リモートURLを編集して問題を解決しました:
git remote set-url heroku <heroku-url-here>
SOとても簡単な解決策です。c:/Users/user_name/.ssh/に移動し、pub/private keyのペアをすべて削除します。これにより、herokuがキーを生成します。
同様のheroku sshエラーがあり、解決できませんでした。
回避策として、新しいheroku http-git機能(sshではなく「heroku」リモートのhttpトランスポート)を使用しました。詳細はこちら: https://devcenter.heroku.com/articles/http-git
(ショートバージョン:プロジェクトが既に標準的な方法でセットアップされている場合は、heroku git:remote --http-initを実行して「heroku」リモートをhttpに変更します。)
Sshの問題を修正/トラブルシューティングする時間がない場合は、すぐに回避できます。
同じ問題がありました。そして、みんなが言ったようにキーをリセットしようとしましたが、それでもうまくいきませんでした。なぜなら、アプリの名前を変更したからです。
だから私はキーをリセットし、コンソールからアプリの名前も変更しました。詳細については、この質問を確認してください: Heroku Push app problem