Kesalahan Git: “Harap pastikan Anda memiliki hak akses yang benar dan repositori ada”

99

Saya menggunakan TortoiseGit di Windows. Ketika saya mencoba Mengkloning dari menu konteks Windows Explorer standar, saya mendapatkan kesalahan ini:

Harap pastikan Anda memiliki hak akses yang benar dan repositori ada

Lebih tepatnya, snapshot dari terminal adalah sebagai berikut:

git.exe clone --progress -v "git @ arobotdev: \ git \ AlfaRobot.git" "C: \ Work \ AlfaRobot"

Kloning ke 'C: \ Work \ AlfaRobot' ...
Izin ditolak, coba lagi.
Izin ditolak, coba lagi.
Izin ditolak (publickey, password).
fatal: Tidak dapat membaca dari repositori jarak jauh.

Harap pastikan Anda memiliki hak akses yang benar
dan repositori ada.

git tidak keluar dengan bersih (kode keluar 128) (21450 ms @ 19.09.2014 10:36:58)

Apa yang harus saya lakukan agar git berfungsi dengan baik?

Alex
sumber
1
coba buat keygen ssh dan tambahkan
Raja Simon
Menggunakan Shell (atau Git Bash di Windows) untuk membuat SSH Key:$ ssh-keygen -t rsa -C "[email protected]"
Belter
Mengalami kesalahan itu setelah mengubah repo ke alamat [email protected] karena tidak harus mengetikkan kata sandi sepanjang waktu. Kesalahan sebenarnya yang menyebabkannya adalah lupa menambahkan kunci publik saya di github.
dasWesen

Jawaban:

78

URL git Anda mungkin telah berubah. Ubah URL di direktori lokal dengan menggunakan perintah berikut

git remote set-url origin git@yourGitUrlHere
Wisnu
sumber
17
FYI github sekarang menggunakan skema url:git remote set-url origin https://github.com/username/repository.git
RyPope
2
@RyPope Anda dapat menggunakan protokol apa pun baik git (ssh) atau https, itu keinginan Anda. github sekarang memiliki protokol gitdan https.
Wisnu
@ Wisnu Apa itu XXXXXXX?
244 anak laki
@RyPope Konversikan menjadi jawaban
ishandutta2007
Kesalahan yang sangat umum dilakukan oleh saya. Saya menyalin menggunakan perintah klip xclip -sel clip < ~/.ssh/id_rsa.pub, tetapi selama menempelkan ke kotak input kunci github, saya menghapus baris baru terakhir menggunakan backspace, yang sebenarnya mengubah kunci publik. Jadi, selalu salin & tempel kunci publik ssh apa adanya tanpa menghapus baris baru terakhir.
Amreesh Tyagi
62

Masalah itu mungkin terjadi dengan ssh-agent Anda, kunci ssh Anda belum ditambahkan dengan ssh-agent. Anda harus menerapkan langkah-langkah berikut menggunakan terminal Anda: -

  1. $ eval "$ (ssh-agent -s)"

    Agen pid 5867

  2. $ ssh-add

    Masukkan frasa sandi untuk /home/you/.ssh/id_rsa: [] Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

maka itu akan berhasil .. ceria J.

Onkar_M18
sumber
11
Masih mendapatkan kesalahan saat mengkloning:fatal: Could not read from remote repository.
IgorGanapolsky
Terima kasih berhasil untuk saya, saya telah membuat kunci yang berbeda dari id_rsa default, jadi hanya perlu melakukan tambahan di perintah di atas ssh-add -K ~ / .ssh / id_rsa_other_project.
Nitesh
Ya, ini tidak akan memperbaiki masalah apa pun. Menambahkan identitas Anda ke ssh hanya menghentikan hal-hal yang meminta kata sandi sertifikat Anda setiap saat
DMcCallum83
Bersulang. Aku gagal lari brew update. ketika saya berlari ssh-addsebelum menjalankan perintah, itu berhasil. harap saya tidak mengulangi ini sepanjang waktu.
nyxee
masih mendapatkan error "Verifikasi kunci host gagal. fatal: Tidak dapat membaca dari repositori jarak jauh." tetapi menambahkan host yang dikenal telah diperbaiki untuk saya: stackoverflow.com/questions/15214977/…
rickvian
37

Coba gunakan HTTPS sebagai pengganti SSH saat mengambil klon dari GIT, gunakan Url ini untuk klon ambil, Anda dapat menggunakan Gitbase, Android Studio atau alat lain untuk mengkloning cabang. masukkan deskripsi gambar di sini

Lovekush Vishwakarma
sumber
35

Bagi saya itu karena tidak ada kunci SSH di mesin. Periksa kunci SSH secara lokal:

$ cat ~/.ssh/id_rsa.pub

Ini adalah kunci SSH Anda. Tambahkan ke kunci SSH Anda di repositori.
Di gitlab, buka

pengaturan profil -> Tombol SSH

dan tambahkan kuncinya

Jacek Góraj
sumber
7
Saya telah menambahkan kunci seperti yang Anda sebutkan dan masih mendapatkan pesan akses ditolak. Tolong bantu
Jet
20

Github sekarang menggunakan skema url

git remote set-url origin https://github.com/username/repository.git

RyPope
sumber
9

Anda mencoba untuk mengkloning repositori melalui ssh:, git@arobotdev...dan kunci SSH Anda tidak disetel dengan benar di server. Ada beberapa alasan untuk ini:

  1. Kunci publik Anda mungkin tidak disimpan dalam file authorized_keys dari pengguna git
  2. Jika 1 tidak benar, kunci pribadi Anda tidak disimpan di folder .ssh / HOMEDIR Anda.
  3. Izin tidak disetel dengan benar

Jika semua 3 di atas tidak benar maka satu-satunya kesimpulan saya adalah mencoba: git@arobotdev:AlfaRobot.git Dengan asumsi AlfaRobot.git ada di HOMEDIR pengguna git dan bukan di dalam folder bernama git yang berada di HOMEDIR pengguna git.

Mudassir Razvi
sumber
5

Rsa.pub (yaitu kunci publik yang dihasilkan), perlu ditambahkan di halaman github >> pengaturan >> kunci ssh. Periksa bahwa, Anda belum menambahkan kunci publik ini di repositori-pengaturan >> kunci penerapan. Jika demikian, hapus entri dari sini dan tambahkan ke tempat pertama yang disebutkan.

Penyiapan kunci pub-private secara detail .

Itu akan berhasil karenanya!

parasrish
sumber
3
  1. Hal pertama yang mungkin ingin Anda konfirmasi adalah koneksi internet. Padahal, masalah internet sebagian besar akan mengatakan bahwa repo tidak dapat diakses.

  2. Pastikan Anda telah menyiapkan ssh baik secara lokal maupun di github Anda. Lihat caranya

  3. Pastikan Anda menggunakan remote ssh git. Jika Anda telah mengkloning https, cukup atur url ke ssh url, dengan perintah git inigit remote set-url origin [email protected]:your-username/your-repo-name.git

  4. Jika Anda telah mengatur ssh dengan benar tetapi berhenti bekerja, lakukan hal berikut:

    • eval "$(ssh-agent -s)"
    • ssh-add

    Jika Anda masih mengalami masalah, periksa untuk memastikan bahwa Anda belum menghapus ssh dari github Anda. Jika ssh telah dihapus dari github, Anda dapat menambahkannya kembali. Gunakan pbcopy < ~/.ssh/id_rsa.pubuntuk menyalin kunci ssh dan kemudian pergi ke pengaturan github ssh Anda dan tambahkan.

Saya akan merekomendasikan Anda selalu menggunakan ssh. Untuk sebagian besar tim tempat saya bekerja, Anda tidak dapat mengakses repo (yang sebagian besar bersifat pribadi) kecuali Anda menggunakan ssh. Untuk seorang pemula, ini mungkin tampak lebih sulit tetapi nanti Anda akan merasa lebih mudah dan lebih aman.

Obinna Nnenanya
sumber
3

Saya mengalami masalah ini, dan saya menemukan bahwa sistem saya menggunakan alamat dns yang salah. Verifikasi jaringan Anda dan uji dengan

ssh -vvv [email protected]

Dan baca pesan keluaran. Jika Anda melihat "Anda dapat menggunakan git atau hg untuk menyambung ke Bitbucket". , semuanya baik-baik saja.

albert
sumber
halo @Albert, saya menghadapi masalah yang sama tetapi untuk gitlab.com. Bagaimana Anda berhasil memperbaiki masalah tersebut?
abiratsis
@AlexandrosBiratsis Saya mengganti dns saya dengan alamat lain. Coba opendns atau google dns.
albert
3

Jika itu berfungsi sebelumnya dan tiba-tiba berhenti bekerja:

Masalah ini dapat disebabkan karena terkadang ssh-agenttidak terus-menerus saat melakukan boot ulang. Anda harus memeriksa apakah ssh-agentkunci Anda telah ditambahkan:

ssh-add -l -E md5

jika Anda mendapatkan output seperti:

The agent has no identities.

itu berarti ssh-agenttelah kehilangan kunci Anda. Dalam hal ini, Anda hanya perlu menambahkan kunci identitas lagi. Sesuatu seperti:

ssh-add ~/.ssh/git_rsa

Kesalahan seharusnya hilang sekarang!

shivam
sumber
Ini terjadi pada saya ketika saya membuat ssh lain untuk akun yang berbeda, jadi saya hanya menambahkan yang hilang git_rsake dalam daftar
Yohanes
2

Inilah cara saya mengatasi masalah ini. Saya menggunakan Babun (mintty.exe) di Win7 / 10. Ketika saya telah mencoba banyak solusi yang disebutkan di atas, dan tidak ada yang berhasil. Saya menyadari mungkin saya hanya menggunakan agen ssh yang salah ... Jadi saya lari echo $GIT_SSHuntuk mencari tahu, itu menunjukkan jalan ke Plink.exe. Apa yang sebenarnya saya harapkan adalah OpenSSH.

Jadi, saya menambahkan satu baris berikut ke ~/.zshrcfile

Catatan 1: Anda juga dapat menjalankannya di babun secara langsung.
Catatan 2: Jika Anda menggunakan bash maka file konfigurasinya adalah.bashrc

export GIT_SSH=$(which ssh)

Dan Berhasil!

Paris Qian Sen.
sumber
2

tambahkan baris ini ke .get/configfile Anda (terima kasih kepada @kovshenin jawaban Git Pull: Ubah Otentikasi ):

[credential]
    helper = wincred
Khaled AbuShqear
sumber
Atau ~ / .gitconfig
Marcos
2

Coba https, bukan ssh. Pilih opsi https dari halaman beranda proyek tempat Anda menyalin url kloning.

Vedha Peri
sumber
2

Saya menemukan kesalahan ini saat mengunggah proyek ke gitlab. Saya tidak mengkloning dari git melainkan mengunggah proyek. Untuk mendorong kode Anda ke gitlab, Anda memiliki dua cara baik menggunakan ssh atau https. Jika Anda menggunakan https Anda harus memasukkan username dan password akun gitlab. Untuk mendorong kode Anda ke git, Anda dapat menggunakan yang berikut ini.

Mendorong ke Git untuk pertama kalinya

>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "[email protected]"

Parameter -C bersifat opsional, ini memberikan komentar di akhir kunci Anda untuk membedakannya dari yang lain jika Anda memiliki beberapa. Ini akan membuat id_rsa (kunci pribadi Anda) dan id_rsa.pub (kunci publik Anda). Kami membagikan kunci publik kami dan menyimpan kunci pribadi kami - yah, pribadi. Gitlab ini Pengaturan Pengguna adalah di mana Anda kemudian akan menambahkan Anda kunci publik ke akun Anda , memungkinkan kita untuk akhirnya mendorong.

Di lokasi proyek Anda (Direktori) gunakan perintah di bawah ini

git init

Ini Mengubah direktori saat ini menjadi repositori Git. Ini menambahkan subdirektori .git ke direktori saat ini dan memungkinkan untuk mulai merekam revisi proyek.

Dorong Menggunakan jalur https

git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master

Dorong Menggunakan jalur ssh

git push --set-upstream [email protected]:Account_User_Name/Your_project_Name.git master

- set-upstream: memberi tahu git jalur ke asal. Jika Git sebelumnya telah mendorong cabang Anda saat ini, ia akan mengingat di mana asalnya

master : ini adalah nama cabang yang ingin saya dorong saat menginisialisasi

Gurjinder Singh
sumber
1

Ini juga dapat terjadi jika Anda terhubung ke repositori git melalui VPN. Pastikan Anda tersambung ke VPN yang digunakan untuk mengakses sumber daya organisasi Anda.

John Doe
sumber
1

Saya menggunakan Ubuntu

setelah membaca banyak jawaban, tidak ada yang bisa menyelesaikan masalah, bahkan jika saya sudah menambahkan kunci SSH ke akun git saya, dan mencoba mengujinya menggunakan ssh -T [email protected]dan dikatakan Welcome <my username>, tetapi tetap memberi tahu saya bahwa saya tidak memiliki hak akses. Kemudian saya menemukan alasannya:

Biasanya jika Anda bukan rootpengguna, Anda harus menjalankan sudountuk setiap perintah git.

saat berlari sudo git clone <SSH....>(misalnya). itu akan dieksekusi di bawah rootizin, tetapi secara tidak sengaja ketika membuat kunci SSH saya menjalankannya sebagai pengguna biasa dan saya menyimpan kunci ~/.ssh/id_rsa, itu menyelesaikan jalur absolut /home/username/.ssh/id_rsa. Dan saat melakukannya sudo git clone ...mencari kunci SSH di/root/.ssh/id_rsa

Mengapa saya bisa yakin tentang ini. Untuk melihat di mana git mencari kunci SSH Anda. Menjalankan perintah ini: sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <your repository in SSH>. Ini akan menunjukkan kepada Anda di mana ia mencari kunci SSH Anda.

Jadi SOLUSI yang saya sarankan adalah:

Membuat kembali kunci SSH Anda (ikuti instruksi ini ), TAPI jalankan sudo supada langkah pertama, maka Anda akan baik-baik saja.

Duc Trung Mai
sumber
Terima kasih untuk ini. Ini adalah skenario saya yang sama persis
afolabiabass
0

Masalah alternatif mungkin koneksi internet Anda. Jelas mungkin, tetapi butuh beberapa menit untuk mengetahui wifi saya mati :)

Boltzmann Otak
sumber
1
Menurut pesan kesalahan, sepertinya koneksi internet bukan masalah di sini.
jbmusso
0

Seperti jawaban yang lain, menggunakan httpsbukan sshadalah solusi.

Saya memposting jawaban untuk memberikan contoh konkret dari solusi yang mungkin. Saya memecahkan masalah ini dengan bitbucket ketika saya mengubah url jarak jauh ke HTTPS dengan baris perintah ini:

git remote set-url origin <bitbucket_URL>

Setelah itu, saya bisa mendorong konten ke repositori dengan perintah ini:

git push -u origin --all

Dan kemudian saya juga bisa menggunakan Sourcetree

Sébastien Gicquel
sumber
0

Anehnya saya hanya menerima kesalahan ini di 1 dari banyak repo saya.

Masalah saya adalah setelah menginstal Desktop GitHub baru untuk Windows di mana GitHub lama untuk Win menyimpan kunci di dalamnya ~/.ssh/github_rsadan di ~/.ssh/github_rsa.pubmana GitHub baru untuk Win mengharapkannya ~/.ssh/id_rsasehingga solusinya hanya mengganti nama kunci pribadi dan publik yang ada:

~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub

Setelah itu biarkan saya mengakses repo lagi tanpa masalah.

Mythz
sumber
0

gunakan asal https Anda, bukan url ssh

contoh:

git remote add origin  https://gitlab.com/user/folder.git
stilo bit
sumber
0

Menambahkan kunci ssh berhasil untuk saya. Anda dapat membuat kunci ssh dengan perintah ssh-keygen di mac. Anda seharusnya dapat melihat menu Deploy keys di YourRepository> Pengaturan jangan lupa untuk mencentang opsi Izinkan akses tulis.

menyebarkan tangkapan layar menu kunci

tlrmacl.dll
sumber
0

Kesalahan yang sangat umum dilakukan oleh saya. Saya menyalin menggunakan perintah klip xclip -sel clip < ~/.ssh/id_rsa.pub, tetapi selama menempelkan ke kotak input kunci github, saya menghapus baris baru terakhir menggunakan backspace, yang sebenarnya mengubah kunci publik.

Jadi, selalu salin & tempel kunci publik ssh apa adanya tanpa menghapus baris baru terakhir.

Amreesh Tyagi
sumber
0

Bagi saya, saya mengalami masalah dengan VPN perusahaan, setelah memutuskan sambungan berfungsi dengan baik.

Periksa koneksi dengan github menggunakan perintah ssh -vvvT [email protected]

rana_stack
sumber
0

Beralih ke penggunaan https berfungsi. Pertama, alihkan ke https daripada kunci ssh. git remote set-url origin

Ini kemudian akan meminta nama pengguna dan kata sandi git.

Stephen Mwangi Wanjohi
sumber