GitHub: Izin ditolak (publickey). fatal: Ujung yang jauh menutup secara tak terduga

197

Saya telah mengikuti instruksi di bawah ini untuk mengunggah proyek.

Pengaturan global:

 Download and install Git
  git config --global user.name "Your Name"
  git config --global user.email [email protected]
  Add your public key


Next steps:

  mkdir tirengarfio
  cd tirengarfio
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin [email protected]:tirenga/tirenga.git
  git push origin master

Tapi saya mendapatkan kesalahan ini:

Izin ditolak (publickey). fatal: Ujung yang jauh menutup secara tak terduga

Ziiweb
sumber

Jawaban:

24

Bagi saya masalahnya adalah eksekusi clone via sudo.

Jika Anda mengkloning ke direktori di mana Anda memiliki izin pengguna (/ home / user / git) itu akan berfungsi dengan baik.

(Penjelasan: Menjalankan perintah sebagai superuser tidak akan bekerja dengan kunci publik yang sama seperti menjalankan perintah sebagai pengguna. Karenanya Github menolak koneksi.)

Solusi ini memerlukan kunci SSH yang sudah disiapkan: https://help.github.com/articles/generating-ssh-keys

Smundo
sumber
1
solusi ini tampaknya sangat dekat dengan apa yang telah diposting oleh learner_19
Erik
125

Saya harus menambahkan kunci publik saya ke github. https://help.github.com/articles/generating-ssh-keys

Ziiweb
sumber
3
Jika Anda menjalankan mesin linux, menyalin konten file id_rsa.pub mungkin sulit jika Anda menggunakan emacs atau nano. Cobalah menyalin dengan editor teks (Notepad, TextEdit, atau gedit akan baik-baik saja). Jika Anda tidak memiliki ini, maka Anda dapat menggunakan vim.
Gokul NK
4
@ GokulNK Alternatif lain adalah menggunakan xclip, seperti yang direkomendasikan oleh halaman.
w4etwetewtwet
7
cat ~/.ssh/id_rsa.pubmungkin ada pilihan? : p
torr
Anda dapat menggunakannya pbcopy < ~/.ssh/id_rsa.pubdi OS X dan kemudian menempelkannya ( cmd+v) di halaman github.
user3648895
28

setelah Anda membuat pasangan kunci RSA, Anda harus menambahkannya ke SSH menggunakan:

ssh-add ~/.ssh/id_rsa

atau di mana pun Anda membuat pasangan kunci rsa Anda.

Sergio Viera
sumber
Penyelamat! Anda memukul paku di kepala. Terima kasih
Tash Pemhiwa
Setuju, penting untuk terlebih dahulu memeriksa apakah ssh-agent sedang berjalan (dokumentasi GitHub memiliki satu melakukannya), dan apakah kunci ditambahkan dalam keyring-nya. Namun ada hal lain yang perlu diperiksa, karena kunci tersebut dapat mencegah kunci untuk digunakan walaupun itu dalam kunci ssh-agent, adalah mode akses yang tepat untuk kunci privat : itu harus 0600 ( chmod 600 ~/.ssh/id_rsa, pada dasarnya).
chikamichi
18

Ketik perintah berikut menggunakan nama pengguna dan nama repositori Anda:

git clone https://github.com/{user name}/{repo name}

di Ubuntu ini berfungsi dengan baik.

rahul_pratap
sumber
Saya pikir protokol https diperlukan untuk memiliki koneksi yang aman, inilah sebabnya ia bekerja. Git @ github .. TIDAK aman untuk mesin.
Timo
16

Saya mendapatkan solusi setelah sekian lama melakukan tutorial.

Saya mengikuti tutorial github pada tautan ini -> https://help.github.com/articles/error-permission-denied-publickey dan saya dapat terhubung di setiap langkah. Tapi ketika saya mencoba git push -u master asal saya mendapat kesalahan ini:

Izin ditolak (publickey). fatal: Tidak bisa membaca dari repositori jarak jauh.

Pastikan Anda memiliki hak akses yang benar

Itulah cara saya memperbaikinya !! Pergi ke direktori proyek menggunakan Terminal dan periksa

$git remote -v

Anda akan mendapatkan sesuatu seperti ini:

origin  ssh://[email protected]/yourGithubUserName/yourRepo.git (fetch)
origin  ssh://[email protected]/yourGithubUserName/yourRepo.git (push)

Jika Anda menggunakan sesuatu yang berbeda dari [email protected] , buka file config pada direktori git dengan mengetikkan perintah:

vi .git/config

Dan konfigurasikan garis

[remote "origin"]

url = ssh://[email protected]/yourGithubUserName/yourRepo.git

fetch = +refs/heads/*:refs/remotes/origin/
rafaeljuzo
sumber
Bagi saya itu benar-benar berfungsi dengan mengganti [email protected] dengan <myusername> @ github.com
Eduard Feicho
Perintah "git remote -v" bukan yang pernah saya lihat sebelumnya, dan ternyata menjadi kunci untuk memahami mengapa salah satu repo saya bekerja, sedangkan yang lain kembali "izin ditolak (publickey)" ketika saya mencoba menjalankan "git ls-remote". Sangat berguna. Terima kasih.
Kevin
6

Dalam kasus saya, saya harus mengatur kunci publik untuk pengguna lain, karena saya sudah punya satu untuk pengguna utama saya. setelah saya beralih pengguna dan melakukan perintah di tautan di atas, saya dapat melakukan pengaturan untuk server pengujian saya tanpa masalah.

Dan Power
sumber
Masalah serupa - Saya masuk sebagai root (dan mengabaikan ini) bukan sebagai pengguna sebenarnya yang diseting dengan SSH. Tidak dapat memperoleh komitmen untuk bekerja untuk apa pun. Mengubah kembali untuk memperbaiki masalah yang diselesaikan pengguna!
Richard Hollis
1
Jelas kurangnya penjelasan tentang bagaimana sebenarnya melakukan perbaikan.
Richard
Saya tidak harus mengejanya, ini untuk Anda Richard! Saya menggunakan akun non-root saya. Saya harus melakukan perintah dari url bantuan github ( help.github.com/articles/generating-ssh-keys#platform-linux ) dengan awalan sudo.
Dan Power
5

Saya memiliki masalah ini, tetapi tidak ada solusi di atas yang berfungsi. Saya bisa mengkloning dan mengambil tetapi tidak bisa mendorong. Akhirnya, saya tahu masalahnya ada di urldalam .git/config, seharusnya:

[email protected]:<username>/<project>

(tidak ssh://github.com/<username>/<project>.gitatau https://github.com/<username>/<project>.git).

Eold
sumber
2
Untuk koneksi SSH, git@bagiannya adalah keajaiban. Begitu ssh://[email protected]/username/project.gitjuga bekerja.
Uskup
.git sangat penting. Solusi ini berfungsi sempurna.
Onur Göker
5

Karena tidak ada jawaban di sini yang berfungsi untuk saya, saya akhirnya melacak masalah saya yang menghubungkan ke Bitbucket (atau Github, tidak masalah dalam kasus ini) dengan ssh -vT [email protected].

Dalam kasus saya, kegagalan itu karena menggunakan kunci DSA bukan RSA, dan tampaknya klien SSH saya tidak lagi mengizinkan itu.

debug1: Melewati kunci ssh-dss /c/Users/USER/.ssh/id_dsa karena tidak ada di PubkeyAcceptedKeyTypes

Solusinya adalah menambahkan ini ke .ssh / config:

Host *
    PubkeyAcceptedKeyTypes +ssh-dss

Ini secara elegan menambahkan tipe kunci ssh-dss ke semua jenis kunci publik yang diterima yang ada dan setelah ini selesai, git sekarang dapat ssh ke Bitbucket tanpa masalah.

Artem Russakovskii
sumber
Ini adalah solusi bagi saya pada mesin Debian yang tidak stabil pada Desember 2015. Saya membatasi itu untuk "Host bitbucket.org" karena saya sudah memiliki entri untuk itu untuk memaksa pemilihan identitas saya.
bitmusher
3

Masalah saya adalah bahwa saya mencoba memberikan kunci ssh saya NAMA KHUSUS setiap kali saya masuk ssh-keygenpada terminal mac saya.

Saya memecahkan masalah dengan hanya meninggalkan nama yang "ssh-keygen" menghasilkan = id_rsa. Anda akan berakhir dengan 2 kunci di folder .ssh Anda di mac id_rsa,, yang merupakan kunci pribadi Anda, dan id_rsa.pub, yang merupakan kunci publik Anda. Lalu saya menyalin dan menyimpan kode dari id_rsa.pubke pengaturan akun GitHub saya, dan hanya itu. Masalah terpecahkan.

paopao
sumber
Sama untuk ku. Membiarkan nama kosong memperbaiki masalah. Terima kasih.
Berk
Sobat, kau melakukan hariku! 2 minggu dengan konsol karena nama kunci tertentu! Terima kasih!
eilas
Senang itu membantu! @eilas
paopao
Alasan ini berfungsi adalah karena pada kebanyakan sistem kunci privat default ( ~/.ssh/id_rsa, ~/.ssh/id_dsadan ~/.ssh/identity) ditambahkan secara otomatis ke agen otentikasi SSH.
maffo
2

Menambahkan kunci publik adalah solusinya. Untuk menghasilkan kunci ssh: https://help.github.com/articles/generating-ssh-keys memiliki petunjuk langkah demi langkah.

Namun, masalah dapat tetap ada jika kunci tidak dihasilkan dengan cara yang benar. Saya menemukan ini juga sebagai tautan yang berguna: https://help.github.com/articles/error-permission-denied-publickey

Dalam kasus saya masalahnya adalah saya membuat kunci ssh tanpa menggunakan sudo tetapi ketika menggunakan perintah git saya harus menggunakan sudo. Komentar ini di tautan di atas "Jika Anda membuat kunci SSH tanpa sudo, maka ketika Anda mencoba menggunakan perintah seperti sudo git push, Anda tidak akan menggunakan kunci SSH yang Anda hasilkan." membantuku.

Jadi, solusinya adalah saya harus menggunakan sudo dengan kedua perintah menghasilkan kunci dan perintah git. Atau untuk orang lain, ketika mereka tidak membutuhkan sudo di mana pun, jangan gunakan dalam salah satu dari dua langkah ini. (perintah pembangkit dan git).

pelajar_19
sumber
1

Saya menghadapi masalah serupa ketika menjalankan SSH atau Git Clone di Windows. Temuan berikut membantu menyelesaikan masalah saya:

  • Ketika Anda menjalankan "rhc setup" atau metode ssh lainnya untuk menghasilkan kunci ssh, itu akan membuat file kunci pribadi id_rsa di folder .ssh di folder rumah Anda, standarnya adalah C: \ User \ UserID
  • Git untuk windows memiliki folder .ssh sendiri di direktori instalasinya. Ketika Anda menjalankan git / ssh, ia akan mencari file kunci pribadi id_rsa di folder ini
  • Memecahkan masalah dengan menyalin id_rsa dari folder home .ssh folder ke folder .ssh di direktori instalasi git

Juga, saya pikir ada cara untuk "memberitahu" git untuk menggunakan folder .ssh default di folder home tetapi masih perlu mencari tahu caranya.

gkl
sumber
1

Bagi saya, ini berfungsi seperti ini:

Di GitHub saya mengubah sshtautannya https, dan kemudian memberikan perintah berikut:

$ git init
$ git remote add origin https:...
$ git add .
$ git commit -m "first commit"
$ git push origin master
Pengembang Naiguel
sumber
0

Gunakan ubuntu di windows store

subsistem windows untuk linux

, push git Anda akan bekerja di berbagai akun.

MayurKubavat
sumber
0

Jika Anda menggunakan mesin linux maka periksa,

  • apakah Anda telah menginstal openssh
  • jika Anda melakukannya, maka apakah Anda memiliki kunci publik yang ada jika tidak Anda harus membuatnya.
  • adalah kunci publik Anda ditambahkan ke akun github Anda.

Membuat kunci SSH baru dan menambahkannya ke akun Github saya memecahkan masalah saya. Anda dapat melihat halaman ini untuk lebih jelasnya. GitHelp .

Juneja yang kasar
sumber
0

Anda dapat mencoba mengubah koneksi tipe Anda ke cabang dari ssh ke https.

  1. nano project_path/.git/config
  2. Ganti [email protected]:username/repository.gitkehttps://[email protected]/username/repository_name.git
  3. Simpan file ctrl+o

Setelah itu Anda dapat mencoba git pulltanpa publickey

Maxim Niko
sumber
-1

Anda perlu mengatur kunci SSH.

Halaman GitHub ini menjelaskan cara membuat kunci.

Jika Anda memiliki kunci yang ada, Anda menyalin $HOME/.ssh/id_rsa.pubdan menempelnya ke halaman pengaturan GitHub SSH .

Richard
sumber
-1

Cara cepat untuk memperbaikinya jika Anda menggunakan Mac adalah keluar dari aplikasi OSX dan masuk kembali.

naskah merek
sumber
-1

Masalah saya adalah itu tidak berfungsi dengan frasa sandi pada kunci pribadi saya.

Semoga itu bisa membantu seseorang.

Orang yg suka tidur
sumber
-3

Saya mencoba solusi yang disebutkan tetapi masih gagal. Saya menemukan solusi yang akhirnya berhasil bagi saya di sini - menghapus lalu menambahkan kembali tautan jarak jauh

yjsa
sumber
-4

Saya memiliki masalah yang sama di windows. Saya beralih dari SSH ke HTTPS dan menjalankan Git PUSH.

git push -u origin master
Username for 'https://github.com': <Github login email>
Password for <Github login>: xxx

Berhasil! semoga ini membantu.

erukumk
sumber
Sementara ini mungkin merupakan penyelesaian, itu tidak menyelesaikan masalah awal.
maffo