Pertanyaan Izin ditolak (publickey) saat menerapkan kode heroku. fatal: Remote end menggantung secara tak terduga


Saya mencoba untuk menyebarkan kode saya ke heroku dengan baris perintah berikut:

git push heroku master

tetapi dapatkan kesalahan berikut:

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

Saya sudah mengunggah kunci SSH publik saya, tetapi masih muncul dengan kesalahan ini.


832


asal


Jawaban:


Anda harus mengunggah kunci publik Anda ke Heroku:

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

Jika Anda tidak memiliki kunci publik, Heroku akan meminta Anda untuk menambahkan satu secara otomatis yang berfungsi dengan lancar. Cukup gunakan:

heroku keys:add

Untuk menghapus semua kunci Anda sebelumnya, lakukan:

heroku keys:clear

Untuk menampilkan semua kunci yang ada lakukan:

heroku keys

EDIT:

Di atas sepertinya tidak bekerja untuk saya. Saya telah mengacaukan dengan HOME variabel lingkungan dan SSH sedang mencari kunci di direktori yang salah.

Untuk memastikan bahwa SSH memeriksa kunci di direktori yang benar, lakukan:

ssh -vT git@heroku.com

Yang akan menampilkan baris berikut (Contoh)

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).

Dari atas Anda dapat mengamati bahwa ssh mencari kunci di /c/Wrong/Directory/.ssh direktori yang bukan tempat kami memiliki kunci publik yang baru saja kami tambahkan ke heroku (menggunakan heroku keys:add ~/.ssh/id_rsa.pub ) ( Harap dicatat bahwa di windows OS ~ mengacu kepada HOME jalur yang menang 7/8 adalah C:\Users\UserName )

Untuk melihat direktori rumah Anda saat ini, lakukan: echo $HOME atau echo %HOME% (Windows)

Untuk mengatur Anda HOME direktori dengan benar (dengan benar saya maksud direktori induk dari .ssh direktori, sehingga ssh bisa mencari kunci di direktori yang benar) lihat tautan ini:

  1. SO Answer tentang cara mengatur variabel lingkungan Unix secara permanen

  2. SO Pertanyaan mengenai ssh mencari kunci di direktori yang salah dan solusi untuk hal yang sama.


1449



Saya memiliki masalah yang sama, langkah-langkah di bawah ini berhasil untuk saya,

->heroku login

abc@gmail.com & kata sandi

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

->ssh-keygen -t rsa -f id_rsa

jika meminta passphrase apa pun tidak menggunakan kosong, isi dengan passphrase, tetapi tidak melupakannya.

Setelah menghasilkan kunci Anda perlu menambahkannya, seperti begitu

$ ssh-add

dan ke heroku

->heroku keys:add "id_rsa.pub"

mengubah direktori ke ruang kerja, dari

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

gunakan frasa sandi yang Anda tetapkan di atas.


Sebenarnya saya juga menghapus file di bawah ini, tetapi tidak yakin bahwa mereka adalah imp,

C: \ Users \ yourusername.heroku \ credientals dan C: \ Users \ yourusername.ssh \ known_hosts


144



Masalah ini mengganggu saya selama beberapa hari.

Ini mungkin bisa membantu.

1) Cari tahu kunci apa yang Anda miliki di Heroku sekarang.

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

2) Buat file ~ / .ssh / config:

$ sudo vim ~/.ssh/config

Edit dengan info ini

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

89



Berikut ini tautan yang menjelaskan cara mengelola kunci ssh Anda: http://devcenter.heroku.com/articles/keys#adding_keys_to_heroku


62



Saya memiliki masalah yang sama karena saya tidak memiliki kunci publik, jadi saya melakukan:

heroku keys:clear
heroku keys:add

Itu akan menghasilkan kunci publik dan kemudian berfungsi dengan baik


34



Jika Anda pengguna Windows, solusi lain di sini mungkin tidak akan menyelesaikan masalah Anda.

Saya menggunakan Windows 7 64-Bit + Git-1.7.7.1-preview20111027 dan solusinya adalah untuk menyalin kunci saya dari C:\users\user\.ssh untuk C:\Program Files (x86)\Git\.ssh. Di situlah klien git ini mencari kunci ketika mendorong ke heroku.

Saya harap ini membantu.


31



Ini adalah solusi untuk saya:

ssh-add ~/.ssh/my_heroku_key_rsa

29



Untuk berbagi pengalaman saya:

Git (instal saya sendiri) sedang mencari kunci bernama 'id_rsa'.

Jadi saya mencoba ganti nama kunci saya menjadi 'id_rsa' dan 'id_rsa.pub' dan itu berhasil.

Btw, saya yakin ada cara lain untuk melakukannya tetapi saya belum melihat lebih dalam.


15



Jika Anda sudah mengunggah kunci, coba untuk menghapus kunci lalu unggah ulang dengan kunci baru.

 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

ini harus bekerja.


11



Saya bunuh diri selama 3 hari mencoba setiap kemungkinan kombinasi untuk mencoba membuatnya bekerja - saya akhirnya mencoba membuat DSA bukan kunci dan itu berhasil.

Coba DSA alih-alih RSA jika tidak berfungsi untuk Anda.

(Saya menggunakan Ubuntu 11.10, ruby ​​1.8.7, heroku 2.15.1)


7