9

ssh キーを管理するシステムを取得できません。

アプリケーションをHerokuにプッシュしたいので、プッシュしようとしたのですがエラーになってしまいました。

ここに私のログがあります

    $ git push heroku master
  !  Your key with fingerprint bf:f6:ed:14:9d:cd:52:a2:a3:16:b2:e9:b4:f2:bf:ba is not authorized to access warm-samurai-6574.
  fatal: The remote end hung up unexpectedly
  User@PK /e/examples (master)
  $ heroku keys:add
  Found existing public key: C:/Users/User/.ssh/id_rsa.pub
  Uploading SSH public key C:/Users/User/.ssh/id_rsa.pub
  !This key is already in use by another account. Each account must have a unique key.
  User@PK /e/examples (master)
  $ heroku keys
  === 1 key for denys.medynskyi@gmail.com
  ssh-rsa AAAAB3NzaC...etyxYh4Q== User@PK

すべてのアカウントには独自の ssh キーがあります。sshキーがherokuにプッシュしているため、どのコンピューターからでもプッシュできますか?

heroku のすべてのアプリケーションは、独自の ssh キーを持っている必要がありますか?

4

4 に答える 4

34

基本的に、コンピュータには SSH キーがあります。ただし、その SSH キーは別の Heroku アカウントに関連付けられています (現在使用しているものとは異なります)。最善の策は、真新しい SSH キーを生成して Heroku に追加することです。

マシンで新しい SSH キーを作成し、Heroku にアップロードするだけです。

$ ssh-keygen

プロンプトで尋ねられたら、必ず「/Users/User/.ssh/new_id_rsa.pub」として保存してください。

$ heroku keys:add /Users/User/.ssh/new_id_rsa.pub 

これで、Heroku を使用できるようになります。

他の質問については、コンピュータの SSH キーを 経由で追加する限り、任意のコンピュータから Heroku にプッシュできますheroku keys:add。いいえ、すべてのアプリケーションが独自の SSH キーを持つ必要はありません。

于 2012-07-06T08:18:31.840 に答える
16

あなたのコンピュータには SSH キーがありますが、その SSH キーは別の Heroku アカウントに関連付けられています。同じコンピューターで異なるアプリケーションに両方のアカウントを使用する必要がある場合は、マシンで新しい SSH キーを作成し、Heroku にアップロードする必要があります。

$ ssh-keygen

プロンプトで尋ねられたら、必ず「/Users/User/.ssh/new_id_rsa.pub」として保存してください。

$ heroku keys:add /Users/User/.ssh/new_id_rsa.pub 

次に、別のホストを に追加する必要があります~/.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を選択することで、どのプロジェクトがどの認証情報を使用するかを管理できます。heroku-alt.git/config

于 2012-11-22T19:21:37.413 に答える
6

Heroku では、アカウントに固有の SSH キーが必要です。2 つのアカウントが同じ ssh キーを持つことはできません。

問題を解決するには、次のいずれかを実行できます。

  • 他の heroku アカウントから ssh キーのリンクを解除します。そのアカウントを使用していない可能性があります。これが最も抵抗の少ない道です。
  • 既存のキーを削除します。新しい ssh 公開/秘密キー ペアを生成します。利点は、キーのデフォルト名を保持するため、使用するアプリケーションによって自動的に検出されることです。
  • 新しい ssh 公開/秘密キー ペアを生成し、既存のキーと一緒に保存します。欠点は、これら 2 つのキーにカスタム名が付けられることです。これらのキーを頻繁に使用することになった場合は、ローカルで configure ssh を設定して、デフォルトの id_rsa の代わりにこれらのキーを使用する必要があります。これには多少の作業が必要であり、関与する可能性があります。

どちらを選択するかは、本当にあなた次第です。

3 番目のオプションを選択した場合は、ssh をローカルで構成して常に heroku に新しいキーを使用する方法について、この回答https://superuser.com/a/272613/25665を参照してください。なぜこれを気にするのか疑問に思っている場合は、git リポジトリにプッシュすることで heroku と対話します。そのためには、ssh を使用して認証を受ける必要があります。デフォルトでは、古いキーが使用され、プッシュすることはできません。代わりに、ssh と対話するときに代替キーを使用するように指示する方が簡単ですwarm-samurai-6574.heroku.com

次のリンクには、新しいキーを作成する手順が記載されています。選択したオプションに応じて、デフォルトの名前を受け入れるか、カスタムの名前を付ける必要があります。 https://devcenter.heroku.com/articles/keys

どのコンピュータからでもプッシュできますか?

繰り返しますが、それは依存します。コンピューターに ssh キーがあり、heroku ドメインにキーを使用するように構成されている場合は、はい。代わりに、そこにキーをコピーせず、そこにある ssh キーを heroku アカウントに追加することもできます。

各アプリには一意のキーが必要ですか?

いいえ。1 つの heroku アカウントで複数のアプリを使用できます。それらはすべて、heroku アカウントにアップロードしたキーを共有します。

于 2012-07-06T08:33:56.280 に答える