Adakah yang melihat kesalahan ini dan tahu apa yang harus dilakukan?
Saya menggunakan terminal, saya di root, repositori GitHub ada dan saya tidak tahu harus berbuat apa sekarang.
> git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Jawaban:
GitHub tidak dapat mengautentikasi Anda. Jadi, Anda tidak menyiapkan dengan kunci SSH, karena Anda belum mengaturnya di mesin Anda , atau kunci Anda tidak terkait dengan akun GitHub Anda.
Anda juga dapat menggunakan URL HTTPS alih-alih URL SSH / git untuk menghindari keharusan berurusan dengan kunci SSH. Ini adalah metode yang direkomendasikan GitHub .
Lebih lanjut, GitHub memiliki halaman bantuan khusus untuk pesan kesalahan itu , dan menjelaskan secara lebih terperinci semua yang dapat Anda periksa.
sumber
ssh -vT [email protected]
dari halaman bantuan Github untuk membantu men-debug kunci apa yang digunakan repo Anda. Saya sarankan Anda menambahkannya dalam jawaban Anda.ssh -vT [email protected]
menyediakan banyak informasi tentang mengapa itu tidak berfungsi.Apakah Anda membuat file config di direktori ~ / .ssh Anda? Itu harus memiliki konten seperti ini:
Dengan asumsi bahwa Anda membuat kunci ssh bernama github_rsa
dan mengunggahnya ke GitHub ...
CATATAN: Anda harus mengikuti cara konfigurasi eksplisit ini jika Anda memiliki lebih dari 1 kunci (2 dan lebih banyak) di direktori ~ / .ssh / Anda. Jika Anda tidak menentukan kunci dengan cara ini, maka kunci pertama dalam urutan diambil dan digunakan untuk otentikasi github, jadi itu tergantung pada nama file kunci itu.
sumber
ssh -T [email protected]
respons dengan benar, sementaragit push -u origin master
memberikan kesalahan yang sama seperti dalam pertanyaan. Mengapa saya dapat terhubung dengan benar tetapi tidak dapat mendorong atau mengambilnya?Saya tahu tentang masalah ini. Setelah menambahkan kunci ssh, tambahkan Anda juga kunci ssh ke agen ssh (dari dokumen resmi )
Setelah semuanya bekerja dengan baik, git dapat melihat kunci yang tepat, sebelum tidak bisa.
sumber
ssh-agent -s
ssh-add ~/.ssh/github_rsa
Anda perlu membuat kunci SSH (jika tidak memilikinya) dan mengaitkan kunci publik dengan akun Github Anda. Lihat dokumentasi Github sendiri .
sumber
Ini terjadi pada saya. Untuk beberapa alasan asal saya menjadi kacau tanpa saya sadari:
Periksa apakah pengaturan Anda masih benar
url harus berupa ssh: //[email protected]/YourDirectory/YourProject.git; jika Anda tidak melihat [email protected], gunakan
untuk memperbaikinya. Atau Anda bisa menggunakan aplikasi github untuk memeriksa dan mengatur url Repositori Jarak Jauh Utama di panel pengaturan repositori khusus Anda.
sumber
Dengan asumsi Anda menghubungkan GitHub melalui SSH, Anda dapat menjalankan perintah di bawah ini untuk mengonfirmasi ini.
Jika Anda mendapatkan hasil memiliki format berikut [email protected]: xxx / xxx.github.com.git, maka Anda harus melakukan hal berikut.
Hasilkan kunci SSH (atau gunakan yang sudah ada). jika Anda memilikinya, Anda hanya perlu menambahkan kunci Anda ke ssh-agent (langkah 2) dan ke akun GitHub Anda (langkah 3).
di bawah ini adalah untuk mereka yang tidak memiliki kunci SSH.
Langkah 1 Menghasilkan pasangan kunci publik / swasta.
Anda akan diminta untuk mengonfirmasi tempat menyimpan kunci SSH dan frasa sandi apa yang ingin Anda gunakan.
Langkah 2 Tambahkan kunci Anda ke ssh-agent
Pastikan ssh-agent diaktifkan
$eval "$(ssh-agent -s)"
Tambahkan kunci SSH Anda ke ssh-agent:
$ssh-add ~/.ssh/id_rsa
Langkah 3 Tambahkan kunci SSH Anda ke akun Anda
$sudo apt-get install xclip
$xclip -sel clip < ~/.ssh/id_rsa.pub
Kemudian tambahkan kunci yang disalin ke GitHub
Buka Pengaturan -> kunci SSH (bilah sisi pengaturan Pribadi) -> Tambahkan kunci SSH -> isi formulir (tombol ada di clipboard Anda, cukup gunakan ctrl + v) -> Tambahkan kunci
Setelah melalui langkah-langkah di atas, Anda harus menyelesaikan masalah izin.
Referensi Tautan: Menghasilkan kunci SSH .
sumber
cat ~/.ssh/id_rsa.pub
Pertama, kita perlu memeriksa kunci ssh yang ada di komputer Anda. Buka Terminal dan jalankan:
dan itu akan mencantumkan file di direktori .ssh Anda
Dan akhirnya tergantung pada apa yang Anda lihat (dalam kasus saya):
Coba atur RSA Anda dan mudah-mudahan itu akan menyelesaikan masalah "git push origin" Anda
$ ssh-keygen -lf ~/.ssh/github_rsa.pub
CATATAN: Sertifikat RSA dipasangkan dengan kunci sehingga Anda akan memiliki sertifikat privat dan publik, privat tidak akan dapat diakses untuk Anda karena itu milik github (dalam hal ini) tetapi publiklah yang mungkin Anda lewatkan ketika kesalahan ini terjadi (Setidaknya itu adalah kasus saya, akun atau repo github saya kacau entah bagaimana dan saya harus "menautkan" kunci publik, yang dibuat sebelumnya)
sumber
SHA
output ke github dari perintah ini?Saya mendapatkan kesalahan ini. Ternyata saya baru saja memutakhirkan OSX ke Sierra dan kunci lama saya tidak lagi terdaftar.
Awalnya saya pikir itu "Upgrade ke macOS Sierra akan menghancurkan kunci SSH Anda dan mengunci Anda dari server Anda sendiri"
Tetapi saya telah mengesampingkan yang itu. Ternyata saya hanya perlu mendaftar ulang kunci saya yang ada:
ssh-add -K
Dan ketik frasa sandi ... selesai!
sumber
Solusi lain:
buat kunci SSH, ketik
ssh-keygen -t rsa -C "[email protected]"
. Ini akan membuat file id_rsa dan id_rsa.pub.Tambahkan id_rsa ke daftar ssh di komputer lokal:
ssh-add ~/.ssh/id_rsa.
Setelah membuat kunci, dapatkan pubkey menggunakan:
Anda akan mendapatkan sesuatu seperti:
salin kunci ini (nilai) dan pergi ke github.com dan di bawah pengaturan (kunci ssh dan pgp) tambahkan kunci publik Anda.
sumber
Jika Anda tidak mengakses repositori Anda sendiri, atau kloning di dalam repositori yang dikloning (menggunakan beberapa perintah "git submodule ..."):
Di direktori home repositori Anda:
1. Buka ".gitmodules", dan Anda akan menemukan sesuatu seperti ini:
Ubah baris terakhir menjadi HTTPS dari repositori yang perlu Anda tarik:
Simpan ".gitmodules" , dan jalankan perintah untuk submodules, dan ".git" akan diperbarui.
2. Buka ".git", buka file "config", dan Anda akan menemukan sesuatu seperti ini:
Ubah baris terakhir menjadi HTTPS dari repositori yang perlu Anda tarik:
Jadi, dalam hal ini, masalah utamanya adalah dengan url. HTTPS dari setiap repositori dapat ditemukan sekarang di atas halaman repositori.
sumber
ini bekerja untuk saya:
1- hapus semua asal
(lih. https://www.kernel.org/pub/software/scm/git/docs/git-remote.html )
* jarak jauh: "Kelola set repositori (" remote ") yang cabangnya Anda lacak.
* rm: "Hapus nama remote. Semua cabang pelacakan jarak jauh dan pengaturan konfigurasi untuk remote dihapus."
2- centang semua telah dihapus:
3- menambahkan master asal baru
itu semua orang!
sumber
Yakinkan
ssh-add -l
menunjukkan sidik jari kunci SSH yang ada dalam daftar kunci SSH di akun Github Anda.Jika outputnya kosong, tetapi Anda tahu Anda memiliki kunci SSH pribadi yang berfungsi dengan akun github Anda, jalankan
ssh-add
di kunci ini (ditemukan di~/.ssh
. Dinamaiid_rsa
secara default, sehingga Anda kemungkinan akan menjalankanssh-add id_rsa
).Selain itu, ikuti instruksi ini untuk menghasilkan pasangan kunci SSH.
sumber
Saya menggunakan github sebelumnya untuk salah satu proyek php saya. Saat menggunakan github, saya menggunakan ssh bukan https. Saya sudah mengatur mesin saya seperti itu dan setiap kali saya melakukan komit dan mendorong kode, itu akan menanyakan kata sandi kunci rsa saya.
Setelah beberapa hari, saya berhenti mengerjakan proyek php dan lupa kata sandi rsa saya. Baru-baru ini, saya mulai mengerjakan proyek java dan pindah ke bitbucket. Karena, saya lupa kata sandi dan tidak ada cara untuk memulihkannya, saya kira, saya memutuskan untuk menggunakan protokol https (disarankan) untuk proyek baru dan mendapatkan kesalahan yang sama dengan pertanyaan yang diajukan.
Bagaimana saya menyelesaikannya?
Jalankan perintah ini untuk memberi tahu git saya untuk menggunakan https alih-alih ssh:
Hapus semua remote jika ada
Ulangi semuanya mulai dari git init ke git push dan berfungsi!
PS: Saya juga un-instal ssh dari mesin saya selama proses debug berpikir bahwa, menghapusnya akan memperbaiki masalah. Ya saya tahu!! :)
sumber
Masalah terpecahkan jika Anda mengubah akses ssh ke akses https ke repositori jarak jauh:
sumber
Saya pikir saya punya jawaban terbaik untuk Anda, aplikasi git Anda membaca id_rsa.pub Anda di direktori pengguna root
Itu sebabnya kunci Anda di /home/your_username/.ssh/id_rsa.pub Anda tidak dapat dibaca oleh git. Jadi, Anda perlu membuat kunci di /home/root/.ssh/
Kemudian salin kunci di akun github Anda. Ini berhasil untuk saya. Kamu bisa mencobanya.
sumber
Jika Anda telah membuat kunci SSH dan masih mendapatkan kesalahan, itu karena Anda harus memberikan izin kepada pengguna untuk membaca dan menulis ke folder tempat Anda melakukan kloning. Untuk melakukan ini
sudo chmod 777 <your_folder_name_here>"
,. Tentu saja, ini setelah Anda membuat kunci SSH dan Anda masih mendapatkan kesalahan ini. Semoga ini bisa membantu pengguna di masa depan.Edit
Untuk menambahkan ini gunakan admin di Windows jika Anda menggunakan bash git
sumber
sudo chown -R $USER:$USER <your_folder_name_here>
Saya memiliki masalah yang sama baru-baru ini. Ini mungkin membantu jika Anda memerlukan perbaikan segera, tetapi ini perlu dilakukan setiap kali Anda memulai kembali sistem Anda
Dari terminal, jalankan:
ssh-add ~/.ssh/id_rsa
Masukkan kata sandi sistem Anda dan itu akan berfungsi.
sumber
Saya ingin menambahkan beberapa temuan saya:
Jika Anda menggunakan
GitBash
, maka pastikan kunci SSH disimpan~/.ssh/id_rsa
.Secara default
GitBash
pencarian~/.ssh/id_rsa
sebagai jalur default untuk kunci SSH.Bahkan
id_rsa
masalah nama file . Jika Anda menyimpan kunci SSH di nama file atau jalur lain, itu akan menimbulkanPermission Denied(publickey)
kesalahan.sumber
OK ada beberapa solusi untuk yang ini, beberapa dari mereka mungkin sudah disebutkan tetapi hanya untuk menyatukan mereka:
pastikan kunci Anda ada, secara default lain ~ / .ssh / folder, yaitu id.rsa dan id.rsa.pub
pastikan kunci memiliki izin yang benar, Anda dapat menjalankan chmod:
chmod 600 ~ / .ssh / id_rsa
chmod 644 ~ / .ssh / id_rsa.pub
pastikan konten kunci publik Anda (id_rsa.pub) cocok dengan yang diunggah dalam konfigurasi repositori jarak jauh
Akhirnya perbaiki masalah dengan ssh agent: ssh-add
Beberapa info lebih lanjut: https://itcodehub.blogspot.com/2015/01/ssh-add-problems-with-ssh-agent-and.html
sumber
chmod
seperti yang Anda jelaskan. Terima kasih.Jika Anda menggunakan GitHub untuk Mac UI, periksa preferensi untuk memastikan Anda masuk.
sumber
Saya mendapatkan kesalahan yang sama saat 'git push'. Di sisi klien saya memiliki dua asal dan master. Saya menghapus satu, lalu bekerja dengan baik.
sumber
Anda dapat menggunakan URL Https untuk masuk
Saya kira Anda mencoba masuk dengan ssh url ketika Anda mengatakan git push jika hanya meminta kata sandi karena Anda terhubung melalui ssh.better Anda menggunakan http url.
sumber
Juga di ubuntu, meskipun sudah ada kunci SSH yang dimasukkan dalam pengaturan di BitBucket, saya mendapatkan masalah ini. Alasannya, saya mencoba yang berikut:
Tidak yakin mengapa, tetapi diselesaikan dengan menggunakan
Tidak ada sudo yang digunakan.
sumber
Bagi saya, saya mencoba ini -
lalu aku lari
dan untuk menghasilkan kunci yang dapat Anda jalankan
ini akan menghasilkan sepasang kunci (Publik dan pribadi).
Anda dapat menyimpan kunci ini untuk github untuk lebih banyak membaca ini Menambahkan kunci SSH baru ke akun GitHub Anda
Saya harap ini akan membantu orang lain :)
sumber
Saya mengalami masalah yang mirip dengan @Batman. Namun, karena saya menjalankan ini di / usr / local / src / projectname, menjalankan tanpa sudo bukanlah suatu pilihan.
Cukup tambahkan tanda -E untuk melihat lingkungan (path ~ / .ssh / Anda).
$ sudo -E git clone git@your_repo
Dari man sudo:
sumber
Skenario di mana ini akan terjadi adalah ketika Anda mengikuti instruksi GitHub setelah Anda membuat repositori. Git akan menginstruksikan Anda untuk menambahkan remote Anda dengan sesuatu seperti ini.
git remote add origin [email protected]:<user>/<project>.git
Ganti apa yang ada dalam <> dengan nilai yang terkait dengan akun Anda.
Solusinya adalah dengan menghapus
.git
suffix. Tambahkan remote sebagai berikut:git remote add origin [email protected]:<user>/<project>
sumber
tl; dr
di
~/.ssh/config
putSkenario Jika Anda menggunakan versi openSSH> 7, seperti katakan pada touchbar MacBook Pro itu
ssh -V
OpenSSH_7.4p1, LibreSSL 2.5.0
Anda juga memiliki Mac lama yang awalnya memiliki kunci yang Anda masukkan ke Github, mungkin menggunakan kunci id_dsa. OpenSSH v7 tidak secara default menggunakan kunci DSA ini (termasuk ini
ssh-dss
), tetapi Anda masih dapat menambahkannya kembali dengan memasukkan kode berikut ke dalam~/.ssh/config
Sumber yang berfungsi untuk saya adalah buletin Gentoo ini
Sekarang Anda setidaknya dapat menggunakan GitHub dan kemudian memperbaiki kunci Anda ke RSA.
sumber
Saya menemukan halaman ini saat mencari solusi untuk pesan kesalahan serupa yang digunakan
git pull
pada host jarak jauh:Saya terhubung dari mesin lokal saya ke host jarak jauh via
ssh -AY remote_hostname
. Ini bukan solusi untuk pertanyaan OP, tetapi berguna untuk orang lain yang menemukan halaman ini, jadi posting di sini.Perhatikan bahwa dalam kasus saya,
git pull
berfungsi dengan baik pada mesin lokal saya (yaitu, kunci ssh telah diatur, dan ditambahkan ke akun GitHub, dll). Saya memecahkan masalah saya dengan menambahkan ini ke~/.ssh/config
laptop saya:Saya kemudian terhubung kembali ke host jarak jauh dengan
ssh -AY remote_hostname
, dangit pull
sekarang berfungsi. Perubahan dalam konfigurasi memungkinkan untuk meneruskan keypair ssh saya dari mesin lokal saya ke host apa pun. The-A
pilihan untukssh
benar-benar depan dalam sesi ssh. Lihat lebih detail di sini.sumber
Mungkin agen ssh Anda tidak memungkinkan Anda dapat mencobanya
http://git-scm.com/
Pasang itu
Aktifkan ssh-agent
C: \ Program Files \ Git \ cmd
start-ssh-agent
sumber
Buka dasbor akun GitHub Anda, temukan repositori proyek Anda, klik tab Pengaturan - di bawah Menyebarkan kunci Anda harus menambahkan kunci SSH Anda. Buka Terminal dan ketik:
Ini akan menyalin kunci dari file id_rsa.pub Anda. Jadi kembali saja ke dasbor GitHub, rekatkan, klik Tambahkan Kunci dan hanya itu.
Solusi yang sama berlaku untuk akun Bitbucket.
sumber