Saya telah mencari-cari selama berjam-jam mencari solusi untuk masalah saya yang tampaknya mudah untuk diperbaiki. Bukan karena pencarian saya tidak menghasilkan apa-apa, tetapi pencarian saya menemukan begitu banyak solusi yang berbeda-tidak ada yang berhasil.
Bagaimanapun, saya tidak bisa mendorong, menarik, atau mengambil dari repositori Heroku saya dari Mac saya. Setiap upaya memberi saya (seolah-olah itu mengejek saya) kesalahan berikut:
'Izin ditolak (publickey). fatal: Tidak bisa membaca dari repositori jarak jauh. '
Saya sudah mencoba (dan mencoba kembali) untuk memperbaikinya dengan berbagai cara. Seperti yang telah saya katakan, saya telah menghabiskan sebagian besar dari dua hari terakhir mencari jawaban. Berikut adalah beberapa hal yang saya coba:
- kunci heroku: hapus diikuti oleh kunci heroku: tambahkan
- Regenerasi kunci ssh sendiri dengan 'ssh-keygen -t rsa'
- Menghapus direktori .ssh saya, diikuti oleh kunci heroku: clear, diikuti dengan menghasilkan kunci ssh
- Menghapus aplikasi saya di heroku dan membuatnya kembali (untungnya tidak banyak yang ada di sana)
Saya dapat mengambil dari repositori GitHub saya dengan baik, jadi saya tahu itu bukan konektivitas jaringan (ping heroku juga berfungsi).
Sebagai solusi darurat (yang saya harap tidak berubah menjadi yang permanen), saya telah masuk ke instalan Ubuntu Amazon AWS ec2 saya. Menarik dan mendorong ke dan dari Heroku bekerja dengan sempurna. Untuk alasan ini, saya masih merasa seolah-olah masalahnya terletak pada kunci ssh pada Mac saya. Kedua kunci muncul di bawah akun Heroku saya. Apakah alamat email di akhir masalah utama?
EDIT: Saya bisa mendorong dan menarik dari GitHub baik-baik saja (saya tidak menggunakan ssh), jadi mengapa tidak Heroku?
Pada titik ini saya bersedia mencoba apa saja. Terima kasih!
sumber
Jawaban:
Saya tahu ini sudah dijawab. Tetapi saya ingin menambahkan solusi saya karena ini dapat membantu orang lain di masa depan.
Sebuah kesalahan kunci umum adalah:
Permission denied (publickey)
. Anda dapat memperbaikinya dengan menggunakankeys:add
untuk memberi tahu Heroku tentang kunci baru Anda.Singkatnya, ikuti langkah-langkah ini: https://devcenter.heroku.com/articles/keys
Pertama, Anda harus membuat kunci jika tidak memilikinya:
Kedua, Anda harus menambahkan kunci ke Heroku:
sumber
heroku keys:add
akan membantu Anda membuatnya jika Anda tidak memiliki kunci.ssh-keygen -t rsa
jikaRSA
tidak dihasilkan jikaheroku keys:add
tidak cukupSaya hanya berpikir saya akan membagikan bahwa saya menemukan jawaban untuk pertanyaan saya sendiri.
Menuliskan masalah saya membuatnya semakin jelas bagi saya, dan saya menyelidiki lebih jauh di mana saya pikir masalahnya terletak: kunci ssh
Ternyata saya benar. Masalahnya bukan dengan kunci itu sendiri, tetapi saya tidak menambahkannya ke daftar kunci ssh yang dikenal di Mac lokal. Jadi walaupun akun Heroku saya telah mengunggah kunci yang benar, Mac saya tidak dapat mengautentikasi karena itu tidak dapat menemukan kunci itu di komputer saya. Solusinya?
Saya ingin memberikan kredit kepada https://help.github.com/articles/error-permission-denied-publickey karena menjadi referensi yang bagus.
sumber
Git Bash
(klik kanan folder), dan memulaissh-agent
yang dimungkinkan dengan menjalankan`ssh-agent`
(ingatkan kembali-tik) dan kemudian tambahkan kunci seperti dijelaskan di atas. Saya harus melakukan ini setiap kali memulaiGit Bash
/ssh-agent
, ia lupa apa yang ditambahkan.Saya memiliki kesalahan yang sama persis (pada windows 7) dan penyebabnya berbeda. Saya menyelesaikannya dengan cara yang berbeda jadi saya pikir saya akan menambahkan penyebab dan solusi di sini untuk orang lain.
Meskipun kesalahan itu sepertinya menunjuk pada heroku, kesalahan itu sebenarnya mengatakan
"Heroku can't get to the git repository"
. Saya bersumpah saya memiliki kunci yang sama di semua server karena saya membuatnya dan mengunggahnya satu per satu pada saat yang sama.Setelah menghabiskan hampir sehari untuk ini saya menyadari bahwa karena git hanya menunjukkan sidik jari dan bukan kunci yang sebenarnya. Saya tidak dapat memverifikasi bahwa kunci itu cocok dengan yang ada di HD atau heroku saya. Saya mencari di file host yang dikenal dan coba tebak ... itu menunjukkan kunci untuk setiap server dan saya dapat dengan jelas melihat bahwa kunci publik git dan heroku tidak cocok.
1) Saya menghapus semua file di folder kunci saya, kunci dari github menggunakan situs web mereka, dan kunci dari heroku menggunakan git bash dan perintah
heroku keys:clear
2) Ikuti instruksi github di sini untuk menghasilkan pasangan kunci baru dan mengunggah kunci publik ke git
3) gunakan
git bash-
heroku keys:add
untuk mengunggah kunci yang sama ke heroku.Sekarang
git push heroku master
bekerja.sungguh mimpi buruk, semoga ini membantu seseorang.
Bryan
sumber
Masalah yang saya alami adalah saya hanya menggunakan https untuk akun GitHub saya. Saya perlu memastikan bahwa akun GitHub saya disiapkan untuk akses ssh dan bahwa GitHub dan heroku keduanya menggunakan kunci publik yang sama. Inilah langkah-langkah yang saya ambil:
Arahkan ke direktori ~ / .ssh dan hapus id_rsa dan id_rsa.pub jika ada. Saya mulai dengan kunci baru, meskipun mungkin tidak perlu.
Masuk ke heroku, buat situs baru dan tambahkan kunci publik Anda:
sumber
saya memiliki kasus yang sama di linux ubuntu dan baru saja memperbaikinya, sepertinya OS bingung antara /root/.ssh/ dan home / user / .ssh / dir, yang saya lakukan adalah:
heroku keys
heroku keys:clear
heroku keys:add
sekarang di sini jika heroku tidak dapat menemukan kunci dan diminta untuk menghasilkan tidak benar, dan ini berarti Anda memiliki masalah yang sama seperti milik saya, lakukan perintah add seperti iniheroku keys:add /root/.ssh/id_rsa.pub
jalan yang akan Anda tambahkan akan menjadi yang Anda dapatkan dalam langkah 2.git push heroku master
sekarangsumber
Cara saya di Windows 8
Tambahkan direktori dengan ssh-keygen ke variabel PATH sistem, biasanya C: \ Program Files (x86) \ Git \ bin
Buka CMD, buka C: \ Users \ Me \
Hasilkan kunci SSH
ssh-keygen -t rsa
Masukkan file untuk menyimpan kunci (//.ssh/id_rsa): .ssh / id_rsa (ubah jalur yang salah default ke .ssh / somegoodname_rsa)
Tambahkan kunci ke Heroku
heroku keys:add
Pilih kunci yang dibuat dari daftar
Buka direktori aplikasi Anda, tulis beberapa kode indah
Init a git repo
git init
git add .
git commit -m 'chore(release): v0.0.1
Buat aplikasi Heroku
heroku create
Sebarkan aplikasi Anda
git push heroku master
Buka aplikasi Anda
heroku open
sumber
Punya masalah serupa, dan mencoba banyak hal. Pada akhirnya yang berhasil bagi saya, adalah menginstal Gnu di Windows ( https://github.com/bmatzelle/gow/releases ), dan memastikan bahwa Gnu menggunakan alat ssh di dalam direktori tersebut dan bukan dengan Git. Setelah diinstal uji dengan (pastikan jika di lingkungan Anda PATH yang mendahului Git \ bin)
Saya menggunakan dempul dan kontes seperti yang dijelaskan di sini: http://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-on-windows-using-putty-plink-pageant/
Setelah kunci dikirim ke heroku (kunci heroku: tambahkan c: \ Users \ Person.ssh \ id_rsa.pub), gunakan
dan memastikan bahwa tumpukan Anda menunjukkan penggunaan Putty - yaitu tumpukan yang berfungsi:
Yang berjalan sebelumnya dan gagal:
sumber
Anda perlu membuat kunci ssh baru dengan mengetik berikut ini - ssh-keygen -t rsa
Maka Anda perlu menambahkan: - kunci heroku: tambahkan
Lalu jika Anda mengetik - heroku terbuka
Masalahnya sudah diatasi.
Itu berhasil bagi saya, Anda bisa mencobanya ...
sumber
Saya mendapatkan kesalahan yang sama, dan karena saya memiliki 4 ssh-keys, jadi saya mencoba mengikuti:
kemudian, empat opsi menunjukkan:
Saya memilih 3), yang terbaru
Lalu, saya memperbaiki kesalahan.
sumber
Saya menggunakan metode ini untuk menyelesaikan masalah ini. Mungkin Anda bisa mencobanya
"Aktifkan ssh-agent"
http://git-scm.com/
Pasang itu
Aktifkan ssh-agent
C: \ Program Files \ Git \ cmd
start-ssh-agent
Pesan disapper setelah agen saya diaktifkan Semoga ini akan membantu Anda
sumber
Saya ingin menambahkan solusi lain karena saya tidak melihatnya di sini. Masalah saya adalah bahwa heroku terhubung ke url yang salah (karena saya terus bermain-main dengan nama url). Mengedit url jarak jauh memecahkan masalah saya:
sumber
Saya memiliki masalah yang sama. Dan saya mencoba mengatur ulang kunci saya seperti yang dikatakan semua orang, tetapi masih tidak berhasil. Karena itu karena saya mengganti nama aplikasi.
Jadi yang saya lakukan adalah mengatur ulang kunci saya dan juga mengganti nama aplikasi dari konsol. Periksa pertanyaan ini untuk informasi lebih lanjut: Masalah aplikasi push Heroku
sumber
SO So So so simple solution, buka c: /Users/user_name/.ssh/ dan hapus semua pasangan kunci pub / private, dengan cara ini heroku akan menghasilkan kunci untuk Anda.
sumber
Saya memiliki kesalahan heroku ssh serupa yang tidak bisa saya selesaikan.
Sebagai solusinya, saya menggunakan fitur heroku http-git baru (transportasi http untuk "heroku" jarak jauh alih-alih ssh). Detail di sini: https://devcenter.heroku.com/articles/http-git
(Versi singkat: jika Anda memiliki proyek yang telah menyiapkan cara standar, jalankan heroku git: remote --http-init untuk mengubah remote "heroku" menjadi http.)
Pekerjaan cepat yang baik jika Anda tidak punya waktu untuk memperbaiki / memecahkan masalah ssh.
sumber