HerokuがSOをカスタマーサポートとして使用しているため(控えめに言っても見苦しいと思います)、少しイライラしてしまいます。
過去5時間、私はアプリケーションを公開しようと試みてきましたが、常にキーに何か問題があります。何十もの記事を読んで、Herokuが馬鹿げた、完全に不透明なプロセスのどこをめちゃくちゃにしているのかを突き止めるために、何度も何度も試しました。
私のユースケースはそれほど難しくありません。Herokuアプリ用に新しいキーペアを作成しました。私はそのキーを自分のキーに設定しました:
> heroku keys
=== [email protected] Keys
ssh-rsa AAAAB3NzaC...avOqfA7ZBd [email protected]
ログインして、問題なくアプリケーション(「アプリケーション」ではなくgitリポジトリを作成しているように見えるため、愚かな名前)を「作成」できます。しかしevery * freaking * timeアプリをプッシュしようとすると、
> git Push heroku master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
私は、WTFが現在進行中であるという洞察はありません。頼りなくキーボードに頭をぶつけただけで、Googleの全能の神がそれに答えられることを願っています。そして、グーグルはそれに答えていません(それを取り戻させてください、私はこれに答えるために約12の方法を見てきました)。
簡単であるはずのシステムの場合、これは冗談です。私はHerokuのアイデアが好きですが、絶対にnothingを達成するために5つ取った後、間違った選択だと思います。
Webにはさまざまなソリューションがあります。利用可能なオプションを1つの投稿にまとめます。すべての手順を実行した後、接続を再試行してください。
ステップ1:公開鍵をHerokuに追加してみる
heroku keys:add ~/.ssh/id_rsa.pub // or just heroku keys:add and it will Prompt you to pick one of your keys
ステップ2:SSHキーの新しいセットを生成し、最初のステップを再試行します
ステップ3:構成ファイルを確認または変更します
vim ~/.ssh/config
Host heroku.com
Hostname heroku.com
Port 22
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa <--- Should be your public SSH key
TCPKeepAlive yes
User [email protected]
ステップ4:gitからherokuリモートを削除し、接続を再作成し、heroku createを介してリモートを追加することは、新しいリポジトリのオプションになります。最初に作成しようとした古いリポジトリを必ず削除してください
$ git remote rm heroku
$ heroku create
ステップ5:Heroku Toolkitを再インストールする
Herokuキーとgithubキーが同期していません。
使用するキーを決定します(新しいキー、つまりheroku_rsaの作成を推奨します)。
キーをgithubに追加します。
次を使用してsameキーをherokuに追加します:heroku keys:add
私は同じ問題に遭遇しましたが、これは私の理論何が起こっているのかです:
かなり前にHerokuにサインアップし、GitHubの公開キーを提供しました。通常のgit Push heroku master
、それは行き、私の秘密鍵を探し、~/.ssh/github_rsa
。その後、投稿したメッセージでサイレントに失敗します。
ただし、後でssh
を使用して別のサーバーに-i
フラグを使用して「IDファイル」(つまり、秘密鍵)を指定します。これにより、秘密鍵のパスワードの入力が求められます。秘密鍵を「ロック解除」して、git Push heroku master
コマンドは機能します。いくつかの結論:
ssh
はIDファイルのパスワードを要求しますが、git
は要求しません。ssh
などの別の方法でIDファイルをロック解除すると、git
の使用のためにロック解除されたままになります。keytool
を含む、IDファイルのパスワード保護を完全に削除する方法に関するドキュメントはないようですany.herokuコードをデプロイするときにアクセス許可が拒否されました(公開キー)。致命的:リモートエンドが予期せずハングアップしました
私はこれがあなたの解決策を持っていると思う、それは少なくとも私のためにした
私の場合、問題はバックグラウンドでssh-agentが実行されていて、関連する秘密鍵が追加されていないことであるように思われました。
ps -afe | grep ssh-agent
ssh-add ~/.ssh/id_rsa_heroku_github
また、公開鍵をgithub(手動)とherokuに追加する必要がありました
heroku keys:add ~/.ssh/id_rsa_heroku_github.pub
他に解決策がない場合は、必ずyourアカウントでnotを使用してLinuxシェルにログインしてくださいでrootアカウント。
そのようにして、sshキーの所有者ではないユーザーで実行している場合、gitは認証のために間違ったキーを探します