次のコマンドラインを使用して、コードをherokuにデプロイしようとしています。
git push heroku master
ただし、次のエラーが発生します。
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
すでに公開SSHキーをアップロードしましたが、それでもこのエラーが発生します。
次のコマンドラインを使用して、コードをherokuにデプロイしようとしています。
git push heroku master
ただし、次のエラーが発生します。
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
すでに公開SSHキーをアップロードしましたが、それでもこのエラーが発生します。
公開鍵を 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 では、win 7/8 のパスを参照することに注意してくださいです~
HOME
C:\Users\UserName
)
現在のホーム ディレクトリを表示するには、echo $HOME
またはecho %HOME%
(Windows)を実行します。
ディレクトリを正しく設定するにHOME
は (正しくはディレクトリの親ディレクトリを意味し、.ssh
ssh が正しいディレクトリでキーを検索できるようにします)、次のリンクを参照してください。
私は同じ問題を抱えていました。以下の手順でうまくいきました。
->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
この問題は、数日間私を悩ませていました。
これは役立つかもしれません。
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
ssh キーの管理方法を説明するリンクは次のとおりです: https://devcenter.heroku.com/articles/keys#adding-keys-to-heroku
公開鍵がなかったために同じ問題が発生したため、次のことを行いました。
heroku keys:clear
heroku keys:add
それは公開鍵を生成し、それはうまくいきます
あなたがWindowsユーザーである場合、ここにある他の解決策はおそらくあなたの問題を解決しないでしょう.
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
私の経験を共有するには:
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
これはうまくいくはずです。
これを機能させるために、考えられるすべての組み合わせを試して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 ディレクトリに 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を使用して公開鍵を生成した後、作成時のタイムスタンプを見て、正しい鍵を追加していることを確認してください.
1 つのコマンドが機能します。
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 ディレクトリ 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を実行すると、動作するはずです。
.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.
これらのアイデアをすべて試した後も、まだ問題がありました。これが私の問題でした:
私のリモートherokuリポジトリはファンクされました。次のように更新しました。
git remote -v
次に、間違っているherokuを削除します。
git remote rm heroku
次に、新しいものを追加します
git remote add heroku git@heroku.com:sitename.git
サイト名は、アプリのHeroku設定ページから取得できます。幸運を!
~/.ssh/authorized_keys
ファイルが正しく設定されていないようです。それを確認する:
~/.ssh
は 0700 です。同じ問題が発生していました。次の手順に従ってください。
.pub
ファイルおよびknow_host
) を削除します。.ssh/ folder
私が直面した問題は Windows にあり、「heroku keys:add」を実行するたびに常に github キーが選択されていました。したがって、問題を解決するために私が従った手順は次のとおりです
上記のコマンドで新しいキーを生成するように求められ、次の出力が表示されました。既存の公開キーが見つかりませんでした。生成しますか?[Yn] Y 新しい SSH 公開鍵を生成しています。SSH 公開鍵 C:/Documents and Settings/Admin/.ssh/id_rsa.pub をアップロードしています... 完了 ! 「heroku」gem は廃止され、 https: //toolbelt.heroku.com からダウンロードしてインストールする Heroku Toolbelt に置き換えられました。
上記のコマンドでは、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.. という出力は得られません。 。 終わり
上記の手順を使用して問題を解決し、アプリケーションをクラウドにデプロイできました。
私がしなければなりませんでした:
$ ssh-keygen -t rsa
$ heroku keys:add
それからそれは働いた:
$ git push heroku master
ディレクトリが必ずしも C:\Users\[username]\.ssh であるとは限らないことを付け加えたいと思います。これは、公開鍵を作成したディレクトリです。
たとえば、Windows のホーム ディレクトリが C:\[ユーザー名] に変更されました。.ssh サブフォルダー内のホーム ディレクトリは、キーを作成した場所として最適であり、最も可能性が高い場所です。次のコマンドを使用して、Windows のホーム ディレクトリを確認できます。
echo %HOMEPATH%
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:create
heroku git:clone
heroku git:remote
$ heroku apps:create --http-git
既存のアプリを SSH から HTTP Git に変更するには、マシン上のアプリのディレクトリから次のコマンドを実行するだけです。
$ heroku git:remote --http-git
Git remote heroku updated
Heroku 用の HTTP Git の設定方法の詳細については、 Dev Center のドキュメントを参照してください。
使って押すとき
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
ディスク ユーティリティ (Mac OS X) でアクセス許可を修復してみてください。助けて頂きました
「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
文章が乱れていたらすみません…
まず、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 toolbelt を再インストールしたところ、うまくいきました。
これが私のために働いたものです。heroku サイトが既知のホストに追加されていません。window-other-show view-git-git リポジトリに移動します。そこからリポジトリをクローンします。クローンしたら、作成したばかりのリポジトリを削除し、ファイル メニューからインポートします。これを行うのは、リポジトリのクローンを作成しても、それがエクスプローラー ビューに追加されないためです。これで、git リポジトリとエクスプローラー ビューが作成されました。