857

次のコマンドラインを使用して、コードをherokuにデプロイしようとしています。

git push heroku master

ただし、次のエラーが発生します。

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

すでに公開SSHキーをアップロードしましたが、それでもこのエラーが発生します。

4

34 に答える 34

1484

公開鍵を Heroku にアップロードする必要があります。

heroku keys:add ~/.ssh/id_rsa.pub

公開鍵がない場合、Heroku はシームレスに機能する公開鍵を自動的に追加するように求めます。使用するだけです:

heroku keys:add

以前のキーをすべてクリアするには、次のようにします。

heroku keys:clear

既存のすべてのキーを表示するには、次のようにします。

heroku keys

編集:

上記は私にはうまくいかなかったようです。環境変数をいじっていたHOMEので、SSH は間違ったディレクトリでキーを検索していました。

SSH が正しいディレクトリで鍵をチェックするようにするには、次のようにします。

ssh -vT git@heroku.com

次の( Sample )行が表示されます

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/Wrong/Directory/.ssh/identity type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_rsa type -1
debug1: identity file /c/Wrong/Directory/.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/Wrong/Directory/.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/Wrong/Directory/.ssh/identity
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_rsa
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_dsa
debug1: No more authentication methods to try.

Permission denied (publickey).

上記から、ssh が、/c/Wrong/Directory/.sshheroku に追加したばかりの公開鍵がある場所ではないディレクトリ内の鍵を探すことがわかります ( を使用heroku keys:add ~/.ssh/id_rsa.pub) ( Windows OS では、win 7/8 のパスを参照することに注意してくださいです~HOMEC:\Users\UserName

現在のホーム ディレクトリを表示するには、echo $HOMEまたはecho %HOME%(Windows)を実行します。

ディレクトリを正しく設定するにHOMEは (正しくはディレクトリの親ディレクトリを意味し、.sshssh が正しいディレクトリでキーを検索できるようにします)、次のリンクを参照してください。

  1. SO Unix環境変数を永続的に設定する方法に関する回答

  2. SO 間違ったディレクトリでキーを探す ssh に関する質問とその解決策。

于 2011-05-19T13:15:00.223 に答える
149

私は同じ問題を抱えていました。以下の手順でうまくいきました。

->heroku login

abc@gmail.com & パスワード

->cd C:\Users\yourusername\.ssh    (OR for cygwin shell ->cd ~/.ssh)

->ssh-keygen -t rsa -f id_rsa

パスフレーズを尋ねられた場合は、空白を使用しないでください。パスフレーズを入力しますが、忘れないでください。

キーを生成したら、次のように追加する必要があります

$ ssh-add

そしてそれをherokuに

->heroku keys:add "id_rsa.pub"

ディレクトリをワークスペースに変更します。

->git clone git@heroku.com:stark-dawn-1234.git -o heroku

上で設定したパスフレーズを使用します。


実際には、以下のファイルも削除しますが、それらがimpであるかどうかはわかりません。

C:\Users\yourusername.heroku\credientals および C:\Users\yourusername.ssh\known_hosts

于 2011-11-03T10:10:48.040 に答える
92

この問題は、数日間私を悩ませていました。

これは役立つかもしれません。

1) Heroku で現在所有しているキーを確認します。

$ heroku keys
=== 1 key for joe@example.com
ssh-dss AAAAB8NzaC...DVj3R4Ww== joe@workstation.local

2) ~/.ssh/config ファイルを作成します。

$ sudo vim ~/.ssh/config

この情報で編集

Host heroku.com
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile ~/.ssh/ssh-dss # location and name of your private key
TCPKeepAlive yes 
User joe@workstation.local
于 2012-01-16T01:32:21.367 に答える
61

ssh キーの管理方法を説明するリンクは次のとおりです: https://devcenter.heroku.com/articles/keys#adding-keys-to-heroku

于 2011-08-14T22:52:58.843 に答える
35

公開鍵がなかったために同じ問題が発生したため、次のことを行いました。

heroku keys:clear
heroku keys:add

それは公開鍵を生成し、それはうまくいきます

于 2012-04-29T10:12:07.850 に答える
31

あなたがWindowsユーザーである場合、ここにある他の解決策はおそらくあなたの問題を解決しないでしょう.

Windows 7 64 ビット + Git-1.7.7.1-preview20111027 を使用していますが、解決策はキーを から にコピーすることでしC:\users\user\.sshC:\Program Files (x86)\Git\.ssh。これは、この git クライアントが heroku にプッシュするときにキーを探す場所です。

これが役立つことを願っています。

于 2011-11-10T14:56:50.370 に答える
29

これが私にとっての解決策でした:

ssh-add ~/.ssh/my_heroku_key_rsa
于 2012-02-14T08:17:02.537 に答える
15

私の経験を共有するには:

Git (私自身のインストール) は、「id_rsa」という名前のキーを探していました。

そこで、キーの名前を「id_rsa」と「id_rsa.pub」に変更しようとしましたが、うまくいきました。

ところで、それを行う別の方法があると確信していますが、まだ詳しく見ていません。

于 2012-06-15T20:19:06.243 に答える
11

キーを既にアップロードしている場合は、キーを削除してから、新しいキーで再アップロードしてください。

 heroku keys:remove //removes the existing key
 ssh-keygen -t rsa //generates a new key in ~/.ssh folder
 heroku keys:add    //uploads the new key, if no arguments r passed then the key generated                              
                    //in default directroy i.e., ~/.ssh/id_rsa is uploaded
 git push heroku

これはうまくいくはずです。

于 2012-06-07T12:04:56.313 に答える
7

これを機能させるために、考えられるすべての組み合わせを試して3日間自殺しました。最終的に代わりにDSAキーを作成してみましたが、機能しました。

うまくいかない場合は、RSA の代わりに DSA を試してください。

(Ubuntu 11.10、ruby 1.8.7、heroku 2.15.1 を使用しています)

于 2011-12-05T02:42:05.690 に答える
6

Windows 7,64ビットでは、上記のソリューション(Onur Turhan's)は、以下のようにわずかな変更を加えて機能しました

C:\Users\MyName > heroku login

メールアドレス/パスワードを入力

C:\Users\MyName >ssh-keygen -t rsa -f id_rsa

これにより、c:\Users\MyName ディレクトリに 2 つのファイル (id_rsa と id_rsa.pub) が生成されました (.ssh ディレクトリにはありません)。

heroku keys:add id_rsa.pub
git clone git@heroku.com:some-heiku-xxxx.git -o heroku

正しい「id_rsa.pub」ファイルを追加することが最も重要だと思います.keygenを使用して公開鍵を生成した後、作成時のタイムスタンプを見て、正しい鍵を追加していることを確認してください.

于 2011-11-21T09:15:56.853 に答える
5

1 つのコマンドが機能します。

heroku keys:add

存在しない場合は作成されます。

于 2012-07-17T08:35:37.880 に答える
5

TortoiseGIT がマシンにインストールされているときに、この問題が発生しました。環境変数GIT_SSHをから変更した後

"c:\Program Files\TortoiseGit\bin\TortoisePlink.exe"

"c:\Program Files (x86)\Git\bin\ssh.exe"

と でこのチュートリアルに従うssh-keygenkeys:add、うまくいきます!

于 2012-08-14T19:07:03.483 に答える
4

プッシュは私のために働いていましたが、突然停止しました。

heroku API でダウンタイムが発生している場合、プッシュしようとするとこのエラーが発生します。

小切手:

https://status.heroku.com/

あまりにも激しくおかしくなる前に。

于 2012-10-20T22:10:09.703 に答える
3

従うべき順序

$ heroku login
$ ssh-keygen -t rsa
$ heroku keys:add

2 番目のステートメントを実行すると、入力が求められます。Enter (リターン) を 3 回押すだけで、キーが追加されます。

于 2013-08-07T17:20:25.787 に答える
2

上記の回答は機能しますが、機能する前に追加の手順を実行する必要があることがわかりました。

  1. すべての id_rsa* ファイルを削除し、このガイドを使用して新しい SSH を生成しました。
  2. 次に、heroku アプリを破棄しました。~/.heroku/credentials ファイルを削除しました。
  3. 「heroku create」コマンド (認証情報ファイルが削除されているため、メール/パスワードの入力を求めるプロンプトが表示されます。
  4. 最後に「heroku keys:add」と入力すると、デフォルトの ~/.ssh/id_rsa.pub ファイルがアップロードされます。
  5. できます!ええと.... YMMVですが、これを理解しようと一日中苦労していたので、これが助けになることを本当に願っています! ハハハ
于 2011-10-07T02:04:43.557 に答える
2

上記のすべてを Windows 7 で試してもうまくいかなかったすべての人のために、私が行ったことを次に示します。 - Git ディレクトリ C:\Program Files (x86)\Git\ (don'コマンド プロンプトを開かないと、これは機能しません)。-上記のように以下を追加しますが、 # を削除する必要があります

Host heroku.com
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile ~/.ssh/ssh-dss
TCPKeepAlive yes 
User joe@workstation.local

git push heroku masterを実行すると、動作するはずです。

于 2014-01-08T23:16:46.140 に答える
1

.ssh設定でherokuを確認してください。.sshフォルダーに移動し、構成ファイルを開きます

cd ~/.ssh
subl config

'subl'はSublimeText用ですが、任意のエディターを使用できます。「IdentityFile」という行を探して、非公開鍵がリストされていることを確認します。

IdentityFile "/Users/ircmullaney/.ssh/my_ssh"

いいえ

IdentityFile "/Users/ircmullaney/.ssh/my_ssh.pub"

それは私のためにそれをしました。設定ファイルにパブリックバージョンが含まれている理由はわかりませんが、パブリックバージョンが含まれているため、エラーがスローされていました。

Permissions 0644 for '/Users/ircmullaney/.ssh/my_ssh.pub' are too open.
于 2012-09-26T13:36:18.837 に答える
1

これらのアイデアをすべて試した後も、まだ問題がありました。これが私の問題でした:

私のリモートherokuリポジトリはファンクされました。次のように更新しました。

git remote -v

次に、間違っているherokuを削除します。

git remote rm heroku

次に、新しいものを追加します

git remote add heroku git@heroku.com:sitename.git

サイト名は、アプリのHeroku設定ページから取得できます。幸運を!

于 2012-11-25T21:28:25.967 に答える
1

~/.ssh/authorized_keysファイルが正しく設定されていないようです。それを確認する:

  • それは正しい道にあります。
  • ファイルのパーミッションは 0600 です。
  • の権限~/.sshは 0700 です。
于 2010-11-24T17:55:22.797 に答える
1

同じ問題が発生していました。次の手順に従ってください。

  1. まず、ログインします: heroku login
  2. すべてのキーをクリア: heroku keys:clear
  3. ローカル フォルダー内のすべてのファイル (すべての.pubファイルおよびknow_host) を削除します。.ssh/ folder
  4. 再度ログインします: heroku login - キーなしでプロンプトが表示されるので、画面の指示に従います。
于 2013-01-12T03:21:13.460 に答える
1

私が直面した問題は Windows にあり、「heroku keys:add」を実行するたびに常に github キーが選択されていました。したがって、問題を解決するために私が従った手順は次のとおりです

  1. 「ドキュメントと設定」フォルダーの下の.sshディレクトリに移動し、gitハブキーを削除しました
  2. コマンド heroku keys:add を実行します

上記のコマンドで新しいキーを生成するように求められ、次の出力が表示されました。既存の公開キーが見つかりませんでした。生成しますか?[Yn] Y 新しい SSH 公開鍵を生成しています。SSH 公開鍵 C:/Documents and Settings/Admin/.ssh/id_rsa.pub をアップロードしています... 完了 ! 「heroku」gem は廃止され、 https: //toolbelt.heroku.com からダウンロードしてインストールする Heroku Toolbelt に置き換えられました。

  1. コマンド heroku keys:add を再実行します

上記のコマンドでは、Found existing public key: C:/Documents and Settings/Admin/.ssh/id_rsa.pub Uploading SSH public key C:/Documents and Settings/Admin/.ssh/id_rsa.pub.. という出力は得られません。 。 終わり

  1. ここで git push heroku master を使用します

上記の手順を使用して問題を解決し、アプリケーションをクラウドにデプロイできました。

于 2012-12-18T10:05:26.663 に答える
1

私がしなければなりませんでした:

$ ssh-keygen -t rsa  
$ heroku keys:add  

それからそれは働いた:

$ git push heroku master  
于 2012-07-08T17:17:34.210 に答える
0

ディレクトリが必ずしも C:\Users\[username]\.ssh であるとは限らないことを付け加えたいと思います。これは、公開鍵を作成したディレクトリです。

たとえば、Windows のホーム ディレクトリが C:\[ユーザー名] に変更されました。.ssh サブフォルダー内のホーム ディレクトリは、キーを作成した場所として最適であり、最も可能性が高い場所です。次のコマンドを使用して、Windows のホーム ディレクトリを確認できます。

    echo %HOMEPATH%
于 2011-12-07T17:32:32.910 に答える
0

SSH キーを扱う代わりに、Heroku の新しい ベータ HTTP Gitサポートを試すこともできます。API トークンを使用するだけでポート 443 で実行されるため、SSH キーやポート 22 をいじる必要はありません。

HTTP Git を使用するには、まず Toolbelt が更新され、資格情報が最新であることを確認します。

$ heroku update
$ heroku login

(Heroku HTTP Git は他の Toolbelt とは少し異なる方法で認証するため、これは重要です)

ベータ版では、関連する,およびコマンドに--http-gitフラグを渡すことで HTTP を取得します。新しいアプリを作成し、HTTP Git リモートで構成するには、次を実行します。heroku apps:createheroku git:cloneheroku git:remote

$ heroku apps:create --http-git

既存のアプリを SSH から HTTP Git に変更するには、マシン上のアプリのディレクトリから次のコマンドを実行するだけです。

$ heroku git:remote --http-git
Git remote heroku updated

Heroku 用の HTTP Git の設定方法の詳細については、 Dev Center のドキュメントを参照してください。

于 2014-11-09T06:24:17.673 に答える
0

使って押すとき

git push heroku production:master 

ホームディレクトリ ~/.ssh/id_rsa の下の公開鍵が使用されます

これを修正するには

別のユーザーがルートである可能性があるため、ログインする必要があります

sudo su 

次に、次のコマンドを発行して新たに開始します

heroku keys:clear //removes existing keys
ssh-keygen -t rsa //generates a new key in ~/.ssh folder (set a password)
heroku keys:add   //uploads the new key, ~/.ssh/id_rsa is uploaded                      
git push heroku production:master
于 2013-11-06T16:03:38.667 に答える
0

ディスク ユーティリティ (Mac OS X) でアクセス許可を修復してみてください。助けて頂きました

于 2013-01-10T10:26:11.017 に答える
0

「sudo」を使用する場合、例:

sudo git clone git@heroku.com......... -o heroku

root ユーザーの ssh キーも生成する必要があります。

sudo su
cd /root/.ssh  
ssh-keygen -t rsa
....
heroku keys:add id_rsa.pub

そしてそれはうまくいくでしょう。

root ユーザーを使用しない場合は、代わりにユーザー ディレクトリで ssh キーを生成します。

cd /home/user/.ssh

文章が乱れていたらすみません…

于 2012-05-15T13:07:37.933 に答える
0

まず、Mac で隠しファイルが表示されていることを確認します。そうでない場合:

  • ターミナルを開いて入力しますdefaults write com.apple.Finder AppleShowAllFiles TRUE
  • killall Finder

次のステップ:

  • すべてのファイルをUsers/user_name/.ssh/削除しようとしています。
  • 端末タイプの開始ssh-keygen -t dsa
  • それでheroku keys:add ~/.ssh/id_dsa.pub

注意: Mac OSX 10.7.2 Lion で行いました。手順は他の人でも同じはずですが。

于 2013-02-13T07:04:57.727 に答える
0

dmajkic の解決策がついに私を助けてくれました:

Windows ユーザーの場合は、git クライアントがキーを見つけられない可能性があります。c:\Users\UserName.ssh\ のキーを確認してください。環境変数 HOME=c:\Users\UserName\

于 2013-06-07T22:27:32.527 に答える
0

heroku toolbelt を再インストールしたところ、うまくいきました。

于 2015-01-29T02:51:02.983 に答える
0

これが私のために働いたものです。heroku サイトが既知のホストに追加されていません。window-other-show view-git-git リポジトリに移動します。そこからリポジトリをクローンします。クローンしたら、作成したばかりのリポジトリを削除し、ファイル メニューからインポートします。これを行うのは、リポジトリのクローンを作成しても、それがエクスプローラー ビューに追加されないためです。これで、git リポジトリとエクスプローラー ビューが作成されました。

于 2013-09-28T05:29:12.543 に答える