Saya menggunakan Mac Snow Leopard dan saya baru saja menginstal git
.
Saya baru saja mencoba
git clone [email protected]:cakebook.git
tapi itu memberi saya kesalahan ini:
Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Apa yang saya lewatkan?
Saya juga mencoba melakukannya ssh-keygen
tanpa frasa sandi tetapi masih kesalahan yang sama.
git
ssh
ssh-keys
public-key
teepusink
sumber
sumber
sudo
- ini adalah pengguna lain dengan kunci publik lain.ssh-keygen
utilitas. Menghapus kunci publik lama dalam pengaturan pribadi di github dan menambahkan ssh id_rsa.pub yang dihasilkan ssh ke kunci SSH dan GPG memperbaiki masalah izin kloning.Jawaban:
Jika pengguna belum membuat pasangan kunci publik / pribadi ssh yang ditetapkan sebelumnya
Info ini berfungsi pada Chaw tetapi dapat diterapkan ke semua repositori git lain yang mendukung otentikasi pubkey SSH. (Lihat gitolite , gitlab atau github misalnya.)
Informasi lebih lanjut dapat ditemukan di https://help.github.com/articles/generating-ssh-keys (terima kasih kepada @Lee Whitney) -
Jika pengguna telah membuat pasangan kunci publik / pribadi ssh yang ditetapkan sebelumnya
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
sumber
ssh-add ~/.ssh/id_rsa
.xclip
di Linux hanya bekerja dengan melakukan hal-hal berikutxclip -sel clip < ~/.ssh/id_rsa.pub
yang tercantum di sini: help.github.com/articles/generating-ssh-keysPemecahan masalah yang lebih luas dan bahkan perbaikan otomatis dapat dilakukan dengan:
Sumber: https://help.github.com/articles/error-permission-denied-publickey/
sumber
Kesalahan ini dapat terjadi ketika Anda mengakses URL SSH (Baca / Tulis) alih-alih Git Read-Only URL tetapi Anda tidak memiliki akses tulis ke repo itu.
Terkadang Anda hanya ingin mengkloning repo Anda sendiri, mis. Menyebar ke server. Dalam hal ini Anda sebenarnya hanya perlu akses BACA-SAJA. Tetapi karena itu repo Anda sendiri , GitHub dapat menampilkan URL SSH jika itu yang Anda inginkan. Dalam situasi ini, jika kunci publik host jarak jauh Anda tidak ada di GitHub SSH Keys Anda, akses Anda akan ditolak, yang diharapkan akan terjadi .
Kasus setara adalah ketika Anda mencoba mengkloning repo orang lain yang Anda tidak memiliki akses tulis dengan URL SSH.
Singkatnya, jika maksud Anda adalah untuk mengkloning-hanya repo, gunakan HTTPS URL (
https://github.com/{user_name}/{project_name}.git
) alih-alih URL SSH ([email protected]:{user_name}/{project_name}.git
), yang menghindari (tidak perlu) validasi kunci publik.Pembaruan: GitHub sedang menampilkan HTTPS sebagai protokol default sekarang dan langkah ini mungkin dapat mengurangi kemungkinan penyalahgunaan URL SSH.
sumber
https://github.com
url git, katanyaSSL certificate problem: self signed certificate in certificate chain
.git -c http.sslVerify=false clone ...
sepertinya langkah berbahaya. Chrome tidak memberikan peringatan ssl. Pikiran?git clone https://github.com/MyUserName/MyRepo.git
Cukup klik pada tautan teks di bawah URL repo di sebelah kanan halaman Github di mana dikatakan " Anda dapat mengkloning dengan HTTPS, SSH, atau Subversion . " (Klik HTTPS untuk mendapatkan tautan alih-alih SSH default .)Tautan bantuan github membantu saya menyelesaikan masalah ini. Sepertinya kunci ssh tidak ditambahkan ke ssh-agent. Inilah yang akhirnya saya lakukan.
Perintah 1:
Pastikan ssh-agent diaktifkan. Perintah memulai ssh-agent di latar belakang:
Perintah 2:
Tambahkan kunci SSH Anda ke ssh-agent:
sumber
Mendapat laporan kesalahan yang sama.
Tetap dengan menggunakan HTTP. Karena saya tidak ingin mengatur "kunci SSH" untuk PC uji.
Ubah URL menjadi HTTP saat dikloning:
Masalah saya sedikit berbeda : URL saya atur ketika menambahkan repo lokal yang ada ke remote, dengan menggunakan:
Untuk memperbaikinya, setel ulang URL ke HTTP:
BTW, Anda dapat memeriksa URL Anda menggunakan perintah:
Semoga ini bisa membantu orang seperti saya. : D
sumber
Ini bekerja untuk saya:
sumber
Perhatikan bahwa (setidaknya untuk beberapa proyek) Anda harus memiliki akun github dengan kunci ssh .
Lihatlah kunci-kunci yang tercantum dalam agen otentikasi Anda ( ssh-add-l )
(jika Anda tidak melihat, tambahkan salah satu kunci Anda yang ada dengan ssh-add / path / ke / kunci / Anda (mis .: ssh-add ~ /.ssh/id_rsa ))
(jika Anda tidak memiliki kunci, buat terlebih dahulu. Lihat: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html atau hanya google ssh-keygen)
Untuk memverifikasi bahwa Anda memiliki kunci yang terkait dengan akun github Anda :
Pergi ke: https://github.com/settings/ssh
Anda harus melihat setidaknya satu kunci dengan kunci hash yang cocok dengan salah satu hash yang Anda lihat ketika Anda mengetik ssh-add-l hanya beberapa menit yang lalu.
Jika tidak, tambahkan satu, lalu coba lagi.
sumber
Saya berjuang dengan masalah yang sama itulah yang saya lakukan dan saya bisa mengkloning repo. Saya mengikuti prosedur ini untuk iMac .
Langkah Pertama: Memeriksa apakah kita sudah memiliki kunci SSH publik.
ls -al ~/.ssh
untuk melihat apakah kunci SSH yang ada ada:Periksa daftar direktori untuk melihat apakah Anda sudah memiliki kunci SSH publik. Publik cacat adalah salah satu dari d_dsa.pub berikut, id_ecdsa.pub, id_ed25519.pub, id_rsa.pub
Jika Anda tidak menemukan maka lanjutkan ke langkah 2 jika tidak ikuti langkah 3
Langkah 2: Menghasilkan kunci SSH publik
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Generating public/private rsa key pair
. Ketika diminta untuk"Enter a file in which to save the key,"
menekan Enter. Ini menerima lokasi file default. Ketika diminta untukEnter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
Cukup tekan enter lagi. Saat diminta, ketikkan frasa sandi yang aman.Enter passphrase (empty for no passphrase): [Type a passphrase]
tekan enter jika Anda tidak inginEnter same passphrase again: [Type passphrase again]
menekan enter lagiIni akan menghasilkan
id_rsa.pub
Langkah 3: Menambahkan kunci SSH Anda ke ssh-agent
eval "$(ssh-agent -s)"
$ ssh-add -K ~/.ssh/id_rsa
Sekarang salin kunci SSH dan tambahkan juga ke akun github Anda
pbcopy < ~/.ssh/id_rsa.pub
Ini akan menyalin file ke clipboard Anda Sekarang buka akun github Anda Buka Pengaturan> Kunci SSH dan GPG> Kunci SSH Baru Masukkan judul dan tempelkan kunci dari clipboard dan simpan. Voila kamu sudah selesai.sumber
Saya memiliki situasi yang sedikit berbeda, saya masuk ke server jarak jauh dan menggunakan git di server, ketika saya menjalankan perintah git saya mendapat pesan yang sama
Cara saya memperbaikinya adalah dengan mengubah file / etc / ssh_config di Mac saya. dari
untuk
sumber
config.ssh.forward_agent = true
, restart VM, dan sekarang berfungsi.Saya bertemu masalah yang sama karena saya pikir perbedaan antara SSH dan HTTPS adalah
https://github.com/USERNAME/REPOSITORY.git
ssh://github.com/USERNAME/REPOSITORY.git
Jadi saya berubah dari HTTPS ke SSH hanya dengan mengubah apa
https://
-ssh://
apa di akhir url diubah.Tetapi kenyataannya adalah:
Yang berarti saya berubah
ssh://github.com/USERNAME/REPOSITORY.git
agar[email protected]:USERNAME/REPOSITORY.git
berfungsi.Kesalahan bodoh tetapi harapan membantu seseorang!
sumber
ssh://github.com/USERNAME/REPOSITORY.git
agar[email protected]:USERNAME/REPOSITORY.git
berfungsi.ssh
alih-alihhttps
jadi saya hanya mengubah 'https: //' menjadi 'ssh: // `maka saya mendapat kesalahan. Jadi ubah 'ssh: // git /../ `ke' git @ .. /":) Diedit jawaban saya.Di Windows, pastikan semua aplikasi Anda menyetujui HOME. Msys secara mengejutkan TIDAK akan melakukannya untuk Anda. Saya harus menetapkan variabel lingkungan karena ssh dan git sepertinya tidak bisa menyetujui di mana direktori .ssh saya.
sumber
Apakah Anda berada dalam lingkungan perusahaan ? Apakah mungkin variabel sistem Anda baru saja berubah? Per jawaban SO ini , kunci ssh hidup di
%HOMEDRIVE%%HOMEPATH%\.ssh\id_rsa.pub
. Jadi jika%HOMEDRIVE%
baru-baru ini berubah, git tidak tahu ke mana harus mencari kunci Anda, dan dengan demikian semua hal otentikasi.Coba jalankan
ssh -vT [email protected]
. Perhatikan di manaidentity file
lokasinya. Bagi saya, itu menunjuk bukan ke normal saya\Users\MyLogin
tetapi ke drive jaringan, karena perubahan variabel lingkungan didorong pada tingkat jaringan.Solusinya? Karena baru saya
%HOMEDRIVE%
memiliki izin yang sama dengan file lokal saya, saya baru saja memindahkan folder .ssh saya di sana, dan menyebutnya sehari.sumber
Kawan begini cara kerjanya untuk saya:
Catatan : Anda seharusnya tidak menggunakan perintah sudo dengan Git. Jika Anda memiliki alasan yang sangat bagus Anda harus menggunakan sudo, maka pastikan Anda menggunakannya dengan setiap perintah (mungkin lebih baik menggunakan su untuk mendapatkan shell sebagai root pada saat itu). Jika Anda membuat kunci SSH tanpa sudo dan kemudian mencoba menggunakan perintah seperti sudo git push, Anda tidak akan menggunakan kunci yang sama yang Anda hasilkan
sumber
Petunjuk dasar GIT tidak membuat referensi ke hal-hal kunci SSH. Mengikuti beberapa tautan di atas, saya menemukan halaman bantuan git yang menjelaskan, langkah demi langkah, bagaimana melakukan ini untuk berbagai sistem operasi (tautan tersebut akan mendeteksi OS Anda dan mengarahkan ulang, sesuai dengan itu):
http://help.github.com/set-up-git-redirect/
Ia menelusuri semua yang diperlukan untuk GITHub dan juga memberikan penjelasan terperinci seperti "mengapa menambahkan frasa sandi saat membuat kunci RSA." Saya pikir saya akan mempostingnya, kalau-kalau itu membantu orang lain ...
sumber
Salah satu cara termudah
pergi ke terminal-
sumber
Selain balasan Rufinus, pintasan untuk menyalin kunci ssh Anda ke clipboard di Windows adalah:
type id_rsa.pub | clip
Referensi:
sumber
Jika Anda memiliki lebih dari satu kunci, Anda mungkin perlu melakukannya
ssh-add private-keyfile
sumber
Saya menemukan kesalahan ini karena saya perlu memberikan izin direktori kerja saya yang sekarang 700:
sumber
Saya harus menyalin kunci ssh saya ke folder root. Google Cloud Compute Engine menjalankan Ubuntu 18.04
sumber
Saya baru saja mengalami masalah ini ketika mengatur proyek saya saat ini, dan tidak ada solusi di atas yang berfungsi. jadi saya mencoba mencari apa yang sebenarnya terjadi pada daftar debug menggunakan perintah ssh -vT [email protected]. Saya perhatikan bahwa nama file kunci pribadi saya tidak ada dalam daftar. jadi mengganti nama nama file kunci pribadi untuk 'id_rsa' melakukan pekerjaan. Semoga ini bisa membantu.
sumber
Cukup lurus ke depan. Ketikkan perintah di bawah ini
Hasilkan kunci SSH. Buka file dan salin isinya. Buka halaman pengaturan GitHub, dan klik pada kunci SSH. Klik Tambahkan kunci SSH baru, dan rekatkan konten di sini. Itu saja :) Anda seharusnya tidak melihat masalah lagi.
sumber
Saya mendapatkan kesalahan yang sama dengan Izin ditolak (publickey) ketika mencoba menjalankan makefile.
Sebagai alternatif untuk langkah-langkah SSH di atas, Anda dapat menginstal aplikasi GitHub asli untuk Mac.
Klik Unduh GitHub untuk Mac dari - https://help.github.com/articles/set-up-git#platform-mac
Setelah Anda menyelesaikan pengaturan dengan akun git hub Anda (saya juga menginstal alat baris perintah git hub tetapi tidak yakin apakah langkah ini diperlukan atau tidak) maka saya menerima email -
[GitHub] Kunci publik baru telah ditambahkan ke akun Anda
dan kesalahan saya diperbaiki.
sumber
Saya mendapatkan kesalahan yang sama. Masalah saya adalah pencampuran dalam sudo.
Saya tidak dapat membuat direktori tempat saya mengkloning secara otomatis tanpa mengawali perintah git clone dengan sudo. Ketika saya melakukan itu, bagaimanapun, kunci ssh saya di mana tidak dirujuk dengan benar.
Untuk memperbaikinya, saya menetapkan izin melalui chmod pada direktori induk yang saya inginkan untuk mengandung klon saya sehingga saya bisa menulisnya. Lalu aku menjalankan git clone TANPA awalan sudo. Kemudian berhasil! Saya mengubah izin kembali setelah itu. Selesai
sumber
Saya mendapatkan kesalahan ini karena saya membuat kunci ssh dengan email yang salah. Saya dapat terhubung menggunakan ssh, tetapi tidak menggunakan git. Solusinya adalah membuat ulang kunci menggunakan alamat email utama akun github saya.
sumber
Ini berhasil untuk saya.
Kunci publik Anda disimpan ke file id_rsa.pub; dan adalah kunci yang Anda unggah ke akun Anda. Anda dapat menyimpan kunci ini ke clipboard dengan menjalankan ini:
sumber
Ini berhasil untuk saya
sumber
Solusi termudah untuk ini, ketika Anda mencoba untuk mendorong ke repositori dengan nama pengguna yang berbeda adalah:
sumber
Kesalahan aneh ini, dalam kasus saya adalah gejala
gnome-keyring-daemon
salah menyebutkan kunci yang diperlukan kata sandi.Saya mengikuti langkah-langkah yang dijelaskan di sini, dan memasukkan kata sandi melalui terminal. Kesalahan, alias antarmuka GUI yang membingungkan, telah diatasi. Lihat: /ubuntu/3045/how-to-disable-gnome-keyring
sumber
Dalam kasus saya, saya telah menginstal ulang ubuntu dan nama pengguna diubah dari sebelumnya. Dalam hal ini kunci ssh yang dihasilkan juga berbeda dari yang sebelumnya.
Masalah diselesaikan dengan hanya menyalin kunci publik ssh saat ini, di repositori. Kunci akan tersedia di pengguna Anda
/home/.ssh/id_rsa.pub
sumber
Di MAC saya, saya memecahkan ini dengan:
Entah mengapa git saya berhenti untuk menemukan kunci privat dalam
github_rsa
file tersebut. Ini terjadi dalam repo tertentu. Maksud saya, di repositori lain git tetap bekerja dengan normal.Saya pikir itu bug.
Saya dapat menemukan perilaku ini berjalan
ssh -vT [email protected]
sumber