次のコマンドラインを使用して、herokuにコードをデプロイしようとしています。
git push heroku master
しかし、次のエラーが発生します:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
公開SSHキーを既にアップロードしましたが、それでもこのエラーが発生します。
heroku login
メールとパスワードを書いてもう一度試すだけで済みました。
次のコマンドラインを使用して、herokuにコードをデプロイしようとしています。
git push heroku master
しかし、次のエラーが発生します:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
公開SSHキーを既にアップロードしましたが、それでもこのエラーが発生します。
heroku login
メールとパスワードを書いてもう一度試すだけで済みました。
回答:
公開鍵を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/.ssh
herokuに追加したばかりの公開鍵を持っているディレクトリではないディレクトリでキーを探すことがわかります(を使用してheroku keys:add ~/.ssh/id_rsa.pub
)(Windows OSでは、Windows~
HOME
C:\Users\UserName
7/8でのパスを参照することに注意してください)です)
現在のホームディレクトリを表示するには、次のようにします。echo $HOME
またはecho %HOME%
(Windows)
HOME
ディレクトリを正しく設定するには(正確には、ディレクトリの親ディレクトリを意味し、.ssh
sshが正しいディレクトリでキーを検索できるようにするため)、次のリンクを参照してください。
heroku keys:add
ssh-keygen -t rsa -C "your_email@youremail.com"
それでもエラーが発生する場合は、別のfile.pubを作成して、この回答の推奨コマンドでそのファイルを使用してみてください
同じ問題があり、以下の手順でうまくいきました、
->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
上で設定したパスフレーズを使用します。
実際に私は以下のファイルも削除しますが、それらがインプであるかどうかはわかりませんが、
C:\ Users \ yourusername.heroku \ credientalsおよびC:\ Users \ yourusername.ssh \ known_hosts
Github for Windows
あったが、id_rsaファイルがなかったためだと思います。
git bash
ssh-keygenを実行するためにコマンドプロンプトでこれを実行する必要がありました。ありがとう。
この問題は数日間私を混乱させていました。
これは役立つかもしれません。
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
User
、その最後の行の前に改行があるはずです。また、#
コメントに不満があったので削除しました。
host
情報を設定ファイルに追加すると、問題が解決しました。heroku rsaキーを作成しましたが、heroku.pubのデフォルトのアクセス許可でエラーが発生しましたgit push
。私はchmod 600 heroku.pub
それを押したとき、それはうまくいきました。
IdentityFile ~/.ssh/ssh-dss
秘密鍵へのパスです。ここでは、公開鍵ではなく秘密鍵を入力します。
私は公開鍵を持っていなかったので同じ問題があったので、私はしました:
heroku keys:clear
heroku keys:add
それは公開鍵を生成し、それはうまくいきます
あなたがウィンドウズユーザーであるなら、ここの他の解決策はおそらくあなたの問題を解決しないでしょう。
私はWindows 7 64ビット+ Git-1.7.7.1-preview20111027を使用しており、解決策はからにキーをコピーC:\users\user\.ssh
することC:\Program Files (x86)\Git\.ssh
でした。そこで、このgitクライアントがherokuにプッシュするときにキーを探します。
これがお役に立てば幸いです。
これは私にとっての解決策でした:
ssh-add ~/.ssh/my_heroku_key_rsa
chmod 600 ~/.ssh/heroku_rsa
私の経験を共有するには:
Git(自分のインストール)は 'id_rsa'という名前のキーを探していました。
そこで、キーの名前を「id_rsa」と「id_rsa.pub」に変更しようとしましたが、うまくいきました。
ところで、他に方法はあると思いますが、まだ深くは見ていません。
すでにキーをアップロードしている場合は、キーを削除してから、新しいキーで再度アップロードしてください。
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
これはうまくいくはずです。
Must specify KEY to remove
これを機能させるためにあらゆる組み合わせを試して3日間自殺しました- 代わりにDSAキーを作成してみましたが、機能しました。
機能しない場合は、RSAではなくDSAを試してください。
(私はUbuntu 11.10、ruby 1.8.7、heroku 2.15.1を使用しています)
Windows 7,64ビットでは、上記のソリューション(Onur Turhan's)は私にとってはうまくいきましたが、以下のように少し変更しました
C:\Users\MyName > heroku login
メールアドレス/パスワードを入力してください
C:\Users\MyName >ssh-keygen -t rsa -f id_rsa
これにより、c:\ Users \ MyNameディレクトリ(.sshディレクトリではない)に2つのファイル(id_rsaおよびid_rsa.pub)が生成されました
heroku keys:add id_rsa.pub
git clone git@heroku.com:some-heiku-xxxx.git -o heroku
正しい「id_rsa.pub」ファイルを追加することが最も重要だと思います。keygenを使用して公開鍵を生成した後、作成時のタイムスタンプを見て、正しい鍵を追加していることを確認してください。
1つのコマンドが機能します。
heroku keys:add
存在しなければ作成します。
heroku keys:add
完全な答えではありません。
TortoiseGITを自分のマシンにインストールしたときにこの問題が発生しました。GIT_SSH
から環境変数を変更した後
"c:\Program Files\TortoiseGit\bin\TortoisePlink.exe"
に
"c:\Program Files (x86)\Git\bin\ssh.exe"
とでこのチュートリアルを実行するssh-keygen
とkeys:add
、動作します!
押すことは私のために働いていた、そしてその後突然停止した。
heroku apiでダウンタイムが発生している場合、プッシュしようとするとこのエラーが発生します。
小切手:
熱狂する前に。
従うシーケンス
$ heroku login
$ ssh-keygen -t rsa
$ heroku keys:add
2番目のステートメントを実行すると、入力を求められます。Enter(リターン)を3回押すだけで、キーが追加されます。
上記の回答は機能しますが、機能する前にいくつかの追加手順を実行する必要があることがわかりました。
上記のすべてをWindows 7で試してもうまくいかない場合は、ここで私がやったことを行います。-GitディレクトリからGitBash.exeを開きますC:\ Program Files(x86)\ Git \(しないでください) tコマンドプロンプトを開きます。これは機能しません)。- 上記のように以下を追加しますが、#を削除する必要があります
Host heroku.com
Hostname heroku.com
Port 22
IdentitiesOnly yes
IdentityFile ~/.ssh/ssh-dss
TCPKeepAlive yes
User joe@workstation.local
今度はgit push heroku masterを実行してください。
~/.ssh/authorized_keys
ファイルが正しく設定されていないようです。それを確認する:
~/.ssh
は0700です。herokuの.ssh構成を確認してください。.sshフォルダーに移動し、設定ファイルを開きます
cd ~/.ssh
subl config
「subl」はSublime Text用ですが、任意のエディターを使用できます。「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.
これらのアイデアをすべて試した後も、まだ問題がありました。これは私の問題でした:
リモートのherokuリポジトリが機能していませんでした。次のように更新しました。
git remote -v
次に、間違っているherokuを削除します。
git remote rm heroku
次に新しいものを追加します
git remote add heroku git@heroku.com:sitename.git
アプリのHeroku設定ページからサイト名を取得できます。幸運を!
私が直面した問題はWindowsであり、「heroku keys:add」を実行すると必ずgithubキーが選択されました。問題を解決するために私が従った手順は次のとおりです
上記のコマンドは私に新しいキーを生成するように頼みました、そして以下は出力でした既存の公開キーが見つかりませんでした。生成しますか?[Yn] Y新しいSSH公開鍵を生成しています。SSH公開鍵のアップロードC:/ Documents and Settings / Admin / .ssh / id_rsa.pub ...完了!'heroku' gemは非推奨になり、Heroku Toolbeltに置き換えられました。https: //toolbelt.heroku.comからダウンロードしてインストールしてください。
上記のコマンドでは、次の出力は表示されません。既存の公開鍵が見つかりました:C:/ Documents and Settings / Admin / .ssh / id_rsa.pub SSH公開鍵のアップロードC:/ Documents and Settings / Admin / .ssh / id_rsa.pub .. 。完了
上記の手順を使用して私は問題を解決し、アプリケーションをクラウドにデプロイできました。
私は同じ問題を経験していました。次の手順に従うと役立つはずです。
.pub
ファイル(すべてのファイルとknow_host
)を削除します.ssh/ folder
Permission denied (publickey).
まず、隠しファイルが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でそれを行いました。他の人でも手順は同じでなければなりません。
ついにdmajkicの解決策が私を助けます:
Windowsユーザーの場合、それは次のことを意味します:gitクライアントがキーを見つけられませんでした。c:\ Users \ UserName.ssh \のキーを確認してください。環境変数HOME = c:\ Users \ UserName \
ここに私のために働いたものがあります。herokuサイトが既知のホストに追加されていません。window-other- show view-git-git repositoriesに移動します。そこからリポジトリを複製します。クローンを作成したら、作成したリポジトリを削除して、ファイルメニューからインポートします。これを行うのは、リポジトリのクローンを作成しても、エクスプローラビューに追加されないためです。これでgitリポジトリとエクスプローラービューができました。