私はRailsを初めて使用し、非常にシンプルなアプリをHerokuにデプロイしようとしていました。これは私が展開する2番目のアプリであり、最初のアプリは問題なく実行できました。しかし、私はこれに関していくつかの問題を抱えています。 「git Push heroku master」の場合は常に、次のエラーが表示されます。
!指紋xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xxの指紋は、my_heroku_appへのアクセスを許可されていません。
致命的:リモートエンドが予期せずハングアップしました
Herokuにログインした後、キーを管理しようとしました。コンソールに「heroku keys」と入力すると、次のようになります。
Myemailaddressのキーはありません。
ただし、コマンド「heroku keys:add」を実行すると、
既存の公開キーが見つかりました:/Users/michele/.ssh/id_rsa.pub ssh公開キーのアップロード/Users/michele/.ssh/id_rsa.pub!指紋は既に存在します。 Herokuアカウントごとに1つのsshキーを使用してください
私を助けてください!これは非常にイライラします。何が悪いのかわかりません!ありがとうございました
私は同じ問題を抱えていた、私はこの投稿と同じ種類の他のものを成功せずにフォローした:-((
最後に、解決策を見つけました。マシンに新しいrsa IDを追加する必要がありました。
そこで、まず最初に新しいrsaキーを作成しました。
ssh-keygen -t rsa -C "giordano.scalzo[at]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
魔法のように働いた!
お役に立てれば。
私も複数のキーと複数のherokuアカウントを持っているので、数か月ごとにこの問題に遭遇します。 Giordano Scalzo、Tom Carchrae、およびuser664833で述べたように、主な問題はssh-agentであり、ssh-add
コマンド。マニュアルページ(man ssh-add
)は実際には非常に明確で簡潔なので、チェックしてください。
Ssh-agentが知っているすべてのキーをリストできます:
ssh-add -l
Ssh-agentが知っているすべてのキーを削除できます:
ssh-add -D
または、特定のキーを削除します
ssh-add -d ~/.ssh/id_rsa_example_key_file_use_your_own
心配しないで!実際にキーを削除するのではなく、たとえばssh-agentが自動的に使用を試みるキーを変更するだけです(たとえば、herokuにプッシュしようとするとき)。必要に応じてキーを追加および削除するのは簡単です。したがって、私にとって、この問題に不満を感じた場合、それを修正する最も簡単な方法は、すべてのキーを削除して、現在使用したいキーのみを追加することです。
ssh-add -D
ssh-add ~/.ssh/id_rsa_example_use_this_one_i_mean_it
コンピューターにはSSHキーがありますが、そのSSHキーは別のHerokuアカウントに関連付けられています。
同じコンピューター上の異なるアプリケーションに両方のアカウントを使用する必要がある場合は、コンピューターで新しいSSHキーを作成し、Herokuにアップロードする必要があります。
$ ssh-keygen
プロンプトが表示されたら、必ず「/Users/User/.ssh/new_id_rsa.pub」として保存してください。
$ heroku keys:add /Users/User/.ssh/new_id_rsa.pub
次に、heroku.com
の代替ホストを~/.ssh/config
に追加する必要があります。
Host heroku-alt
HostName heroku.com
IdentityFile ~/.ssh/new_id_rsa
次に、プロジェクトの.git/config
を更新して、ホストエイリアスを使用します。
[remote "heroku"]
url = git@heroku-alt:myapp.git
fetch = +refs/heads/*:refs/remotes/heroku/*
特定のプロジェクトのheroku-alt
ファイルのリモートでheroku
と.git/config
を選択することにより、どのプロジェクトがどの資格情報を使用するかを管理できます。
以下は、Herokuのドキュメントまたは質問に対する他の回答から欠落している非常に明確な説明です。少なくとも、すべての情報が1か所に表示されるわけではありません。また、アカウントツールでは理解できない方法で問題を理解することもできます。
Herokuは次の2つの方法であなたを識別します。
最初は.git/configにあります
[heroku]
account = acccount_name
これにより、heroku
を使用して基本操作を実行できるようです
Herokuがユーザーを識別する2番目の方法は、ssh(git Push)を使用する操作です。 Herokuは、次のようにsshキーでユーザーを識別します。 https://devcenter.heroku.com/articles/keys
このキーペアは強力な暗号化に使用され、コードの変更をプッシュするときに開発者として一意に識別します。
そのため、sshを使用する場合、作業する各herokuアカウントはherokuに異なるキーを送信する必要があります。チュートリアルに従って、sshキーを作成します。
重要なのは、SSHがHerokuアカウントごとに異なるキーを使用するようにすることです。これをどのように構成しますか?次の2つのことを行う必要があります。
1).ssh/configがインターセプトして再構成する「ダミー」ドメインを作成する必要があります。これにより、sshに必要な「実際の」ドメインと、使用する特別なsshキーがわかります。
Host heroku.my_unique_key
HostName heroku.com
IdentityFile ~/.ssh/identity.heroku.my_unique_key
IdentitiesOnly yes
2)git Pushを使用するときに.git/configを変更して使用します。 heroku.comの代わりに、.ssh/configで設定したダミードメインを使用します
[remote "heroku"]
url = [email protected]
[remote "heroku"]
url = [email protected]_unique_key:myapp.git
それだけです:)少し複雑で、同時に少し簡単です。この情報を発見するには、3年かけて頭を壁にぶつけて試行錯誤しました。どこかに明確に文書化する必要がありますが、少なくとも出発点です。
younは新しいキーを作成してそれらを追加する必要があります
実行後に新しいファイル名を指定します
ssh-keygen
その後(私の場合)
heroku keys:add /home/alex/.ssh/alex_heroku_rsa.pub
私の場合、 heroku keys
には既に正しいキーがリストされていました。だから、私がしなければならなかったことはssh-add /path/to/that/key
そして、すべてが正常に動作し始めました。
先週も同じ問題があります。このリンクは私を助けてくれました。少しでもお役に立てば幸いです。 http://devcenter.heroku.com/articles/keys
また、2つのHerokuアカウントがあり、回避策として、メインアカウント(キーがHerokuによって自動的に使用されるアカウント)をプロジェクトの共同作業者として「招待」しました。
Windowsユーザー向けのソリューションを追加したくありません。
最初のダウンロード "PuTTY Key generator"
OBSでキーを作成します。ランダム領域を生成するには、マウスを空白領域の下に移動する必要があります。
キーを保存します。キーの名前を[name] .pubに変更してください。
実行heroku keys:add
ターミナルで!
私の場合、問題は私が使用していたsshバージョンでした。 GIT_SSH環境変数を別の環境変数( "GIT_SSH =/usr/bin/ssh")に設定するだけで、すべてが正常に機能しました。