Pesan Kesalahan GitHub - Izin ditolak (publickey)

701

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.
webwrks
sumber
2
Pertanyaan serupa: stackoverflow.com/questions/16074832/…
JMoran
1
Mungkin ada masalah izin dengan .ssh dan kunci authoirzed. Ssh cukup ketat, google saja.
Karl Morrison
Kemungkinan duplikat dari Cannot push to git repository di
bitbucket
seperti jawaban @bdukes di sini adalah perintah menggunakan https dan itu akan berfungsi, Windows contoh: "PS C: \ xampp \ htdocs> git clone github.com/algolia/instant-search-demo.git "
Dung

Jawaban:

663

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.

bdukes
sumber
53
Kesalahan ini tidak eksklusif untuk GitHub. Saya mendapatkan kesalahan yang sama dengan BitBucket, dan saya menggaruk-garuk kepala bagaimana cara mengatasinya ...
IgorGanapolsky
32
Bagian bantuan menggunakan 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.
MaximeBernard
25
Suara positif menggunakan HTTPS bukan SSL agak mengecewakan. SSH jauh lebih nyaman. Saran dari @MaximeBernard di atas memecahkan masalah bagi saya: GIT tidak mencari tempat yang tepat untuk direktori .ssh. Menggunakan ssh -vT [email protected]menyediakan banyak informasi tentang mengapa itu tidak berfungsi.
Christophe
1
per komentar saya di atas, opsi ketiga adalah bahwa perintah sedang dikirim dari akun selain dari yang memiliki kunci ssh (misalnya berjalan sebagai root).
David LeBauer
1
Seperti yang disebutkan @ theapache64: Jika Anda menggunakan Mac dan telah membuat kunci ssh "ssh-add" mungkin memang itu yang Anda lewatkan. Bekerja untukku.
Digital Impermanence
78

Apakah Anda membuat file config di direktori ~ / .ssh Anda? Itu harus memiliki konten seperti ini:

Host github.com 
 IdentityFile ~/.ssh/github_rsa

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.

IgorGanapolsky
sumber
1
Saya telah menghasilkan kunci ssh dan dapat bekerja dengan baik, untuk beberapa waktu, tanpa masalah. Suatu hari (mungkin setelah restart), ia berhenti bekerja, sedangkan kuncinya masih utuh di github dan pada sistem lokal saya. Saya menambahkan "file konfigurasi", menentukan kunci-dipetakan ke domain. Rincian diberikan di atas dalam jawaban igor-ganapolsky. Ini bekerja dengan baik!
parasrish
3
Ini memang memecahkan masalah saya! Terimakasih banyak! Tapi saya punya pertanyaan. Sebelum menggunakan metode Anda, ssh -T [email protected]respons dengan benar, sementara git push -u origin mastermemberikan kesalahan yang sama seperti dalam pertanyaan. Mengapa saya dapat terhubung dengan benar tetapi tidak dapat mendorong atau mengambilnya?
Eden Harder
@EdenHarder Saya menghadapi masalah yang sama. Apakah Anda menemukan jawaban untuk itu?
Vreddhi Bhat
64

Saya tahu tentang masalah ini. Setelah menambahkan kunci ssh, tambahkan Anda juga kunci ssh ke agen ssh (dari dokumen resmi )

ssh-agent -s
ssh-add ~/.ssh/id_rsa

Setelah semuanya bekerja dengan baik, git dapat melihat kunci yang tepat, sebelum tidak bisa.

VelikiiNehochuha
sumber
5
Prefek! Bekerja pada MacOS X saya
Stillatmylinux
9
Tidak dapat membuka koneksi ke agen otentikasi Anda.
Mona Jalal
coba jalankan ini: evalssh-agent -s
Vincent acent
@MonaJalal usessh-add ~/.ssh/github_rsa
Anirban Nag 'tintinmj'
Sempurna. ini bekerja. Terima kasih. πŸ‘Œ
Erkam KUCET
62

Anda perlu membuat kunci SSH (jika tidak memilikinya) dan mengaitkan kunci publik dengan akun Github Anda. Lihat dokumentasi Github sendiri .

cdhowie
sumber
2
Terima kasih untuk ini ... Saya mendapat kunci SSH yang sekarang dihasilkan dari GitHub. Perintah apa yang digunakan untuk menghubungkan keduanya di terminal sekarang? Terima kasih!
webwrks
2
Tidak ada perintah terminal untuk itu. Lihat langkah 4 dalam dokumentasi yang saya tautkan dalam jawaban saya.
cdhowie
Saya mengkloning repositori dengan menggunakan HTTPS. Apakah saya perlu membuat kunci SSH dalam kasus ini?
Pabitra Dash
@PabitraDash No. HTTPS tidak menggunakan kunci SSH.
cdhowie
51

Ini terjadi pada saya. Untuk beberapa alasan asal saya menjadi kacau tanpa saya sadari:

Periksa apakah pengaturan Anda masih benar

git remote -v

url harus berupa ssh: //[email protected]/YourDirectory/YourProject.git; jika Anda tidak melihat [email protected], gunakan

git remote set-url origin git://github.com/YourDirectory/YourProject.git

untuk memperbaikinya. Atau Anda bisa menggunakan aplikasi github untuk memeriksa dan mengatur url Repositori Jarak Jauh Utama di panel pengaturan repositori khusus Anda.

rmundo
sumber
9
Hati-hati dengan url. Mereka berbeda antara https dan ssh dan postingan di halaman ini tidak memperjelasnya. Setiap proyek git memiliki file .git / config di direktori root proyek. Di sana Anda dapat mengatur informasi jarak jauh dan cabang. Pengaturan remote untuk https: url = github.com/<yourGitUserName>/<yourGitProject>.git Sedangkan untuk git + ssh: url = [email protected]: <yourGitUserName> / <yourGitProject> git Memiliki url yang salah menyebabkan izin kunci publik ditolak kesalahan yang mungkin bukan kesalahan yang sangat jelas.
darKoram
untuk kasus saya di final hanya berfungsi dengan di bagian: git remote set-url origin github.com/your_directory/your_project.git
rld
19

Dengan asumsi Anda menghubungkan GitHub melalui SSH, Anda dapat menjalankan perintah di bawah ini untuk mengonfirmasi ini.

$git config --get remote.origin.url

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.

$ssh-keygen -t rsa -b 4096 -C "[email protected]"

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 .

xinerd
sumber
Solusi ini bekerja di ubuntu, $ ssh-add /root/.ssh/id_rsa
Feras
Ini menyelesaikan kekacauan aneh pada lingkungan saya juga, salah satu modifikasi yang saya sarankan adalah untuk menghindari ketergantungan xclip, cukup gunakancat ~/.ssh/id_rsa.pub
Pogrindis
19

Pertama, kita perlu memeriksa kunci ssh yang ada di komputer Anda. Buka Terminal dan jalankan:

ls -al ~/.ssh

#or

cd ~/.ssh
ls

dan itu akan mencantumkan file di direktori .ssh Anda

Dan akhirnya tergantung pada apa yang Anda lihat (dalam kasus saya):

 github_rsa  github_rsa.pub known_hosts

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)

d1jhoni1b
sumber
Apakah saya harus menyalin SHAoutput ke github dari perintah ini?
IgorGanapolsky
Tidak, jalankan saja "ssh-keygen -lf ~ / .ssh / <YOUR_GITHUB_RSA_FILE.pub>"
d1jhoni1b
itu sebabnya saya juga melampirkan perintah yang "Daftar file dalam direktori .ssh Anda" ... sehingga Anda tahu dari file mana untuk mengekstrak kunci Anda (ssh-keygen). Ingatlah bahwa sertifikat RSA dipasangkan dengan kunci sehingga Anda akan memiliki sertifikat pribadi 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 github saya atau repo kacau entah bagaimana dan saya harus "menautkan" kunci publik, yang sebelumnya dibuat, sekali lagi)
d1jhoni1b
$ ssh-keygen -lf ~ / .ssh / github_rsa.pub /home/mona/.ssh/github_rsa.pub: Tidak ada file atau direktori seperti itu
Mona Jalal
"Tidak ada file atau direktori seperti itu" berarti Anda tidak memiliki nama atau jalur file itu ... apa yang Anda dapatkan ketika menjalankan ls -al ~ / .ssh?
d1jhoni1b
14

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!

jfunk
sumber
2
masalah yang sama, bekerja untuk saya: `ssh-add -K ~ / .ssh /
id_rsa`
11

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:

cat ~/.ssh/id_rsa.pub 

Anda akan mendapatkan sesuatu seperti:

cat ~/.ssh/id_rsa.pub 

ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAACAQCvMzmFEUPvaA1AFEBH6zGIF3N6pVE2SJv9V1MHgEwk4C7xovdk7Lr4LDoqEcqxgeJftwWQWWVrWWf7q9qCdHTAanH2Q5vx5nZjLB+B7saksehVOPWDR/MOSpVcr5bwIjf8dc8u5S8h24uBlguGkX+4lFJ+zwhiuwJlhykMvs5py1gD2hy+hvOs1Y17JPWhVVesGV3tlmtbfVolEiv9KShgkk3Hq56fyl+QmPzX1jya4TIC3k55FTzwRWBd+IpblbrGlrIBS6hvpHQpgUs47nSHLEHTn0Xmn6Q== [email protected]

salin kunci ini (nilai) dan pergi ke github.com dan di bawah pengaturan (kunci ssh dan pgp) tambahkan kunci publik Anda.

Badr Bellaj
sumber
10

Jika Anda tidak mengakses repositori Anda sendiri, atau kloning di dalam repositori yang dikloning (menggunakan beberapa perintah "git submodule ..."):

Di direktori home repositori Anda:

$ ls -a

1. Buka ".gitmodules", dan Anda akan menemukan sesuatu seperti ini:

[submodule "XXX"]
    path = XXX
    url = [email protected]:YYY/XXX.git

Ubah baris terakhir menjadi HTTPS dari repositori yang perlu Anda tarik:

[submodule "XXX"]
    path = XXX
    https://github.com/YYY/XXX.git

Simpan ".gitmodules" , dan jalankan perintah untuk submodules, dan ".git" akan diperbarui.

2. Buka ".git", buka file "config", dan Anda akan menemukan sesuatu seperti ini:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/YYY/XXX.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[submodule "XXX"]
    url = [email protected]:YYY/XXX.git

Ubah baris terakhir menjadi HTTPS dari repositori yang perlu Anda tarik:

    url = https://github.com/YYY/XXX.git

Jadi, dalam hal ini, masalah utamanya adalah dengan url. HTTPS dari setiap repositori dapat ditemukan sekarang di atas halaman repositori.

N. Osil
sumber
9

ini bekerja untuk saya:

1- hapus semua asal

git remote rm origin  

(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:

git remote -v  

3- menambahkan master asal baru

git remote add origin [email protected]:YOUR-GIT/YOUR-REPO.git

itu semua orang!

marcdahan
sumber
1
Itu sangat membantu. Dengan perintah-perintah ini, ia mulai meminta saya untuk nama pengguna dan kata sandi github, setelah itu saya dapat dengan mudah mendorong ke tautan github dengan mengetikkan terminal: git push -u master asal
Noha Salah
8

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-adddi kunci ini (ditemukan di ~/.ssh. Dinamai id_rsasecara default, sehingga Anda kemungkinan akan menjalankan ssh-add id_rsa).

Selain itu, ikuti instruksi ini untuk menghasilkan pasangan kunci SSH.

Rose Perrone
sumber
8

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?

  1. Jalankan perintah ini untuk memberi tahu git saya untuk menggunakan https alih-alih ssh:

    git config --global url."https://".insteadOf git://
    
  2. Hapus semua remote jika ada

    git remote rm origin
    
  3. 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!! :)

3AK
sumber
Saya tidak berpikir itu ide yang baik untuk mengarahkan orang ke https, ketika ssh seharusnya bekerja. Selain itu, ini tidak mungkin berfungsi untuk orang di belakang proxy perusahaan.
Igor Stoppa
8

Masalah terpecahkan jika Anda mengubah akses ssh ke akses https ke repositori jarak jauh:

git remote set-url origin https_link_to_repository

git push -u origin master
george mano
sumber
5

Saya pikir saya punya jawaban terbaik untuk Anda, aplikasi git Anda membaca id_rsa.pub Anda di direktori pengguna root

/home/root/.ssh/id_rsa.pub

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/

$ sudo su
$ ssh-keygen
$ cd ~/.ssh
$ cat id_rsa.pub

Kemudian salin kunci di akun github Anda. Ini berhasil untuk saya. Kamu bisa mencobanya.

digembok
sumber
Ini biarkan saya untuk jawaban yang saya cari. Saya berlari klon dengan sudo dari kebiasaan, jadi itu mencari kredensial yang salah. Melepas sudo dan klon saya berlari dengan baik.
Taekahn
4

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

Kevin
sumber
Ini. Ini juga dapat menyebabkan masalah.
KevinO
1
Ini adalah masalah saya, tetapi saya tidak akan merekomendasikan pengaturan 777 izin pada folder. Dalam kasus saya, folder tersebut dimiliki oleh pengguna root, dan saya perlu memberikannya akses ke akun pengguna non-root saya. Saya melakukan ini seperti ini:sudo chown -R $USER:$USER <your_folder_name_here>
David
@ David, saya juga merekomendasikan itu. 777 cukup rapi dan tidak aman.
Kevin
3

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.

pengguna7506706
sumber
3

Saya ingin menambahkan beberapa temuan saya:

Jika Anda menggunakan GitBash, maka pastikan kunci SSH disimpan~/.ssh/id_rsa .

Secara default GitBashpencarian ~/.ssh/id_rsasebagai jalur default untuk kunci SSH.

Bahkan id_rsamasalah nama file . Jika Anda menyimpan kunci SSH di nama file atau jalur lain, itu akan menimbulkan Permission Denied(publickey)kesalahan.

imflash217
sumber
3

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

xproph
sumber
Saya telah menyalin kunci ssh saya dari satu komputer ke komputer lain menggunakan drive USB yang diformat sebagai FAT32. Itu mengubah izin file. Di Ubuntu, saya terbiasa secara otomatis dimintai kata sandi SSH bila diperlukan, tetapi itu tidak terjadi secara diam-diam sampai saya berlari chmodseperti yang Anda jelaskan. Terima kasih.
lydell
1

Jika Anda menggunakan GitHub untuk Mac UI, periksa preferensi untuk memastikan Anda masuk.

Juliuli
sumber
1

Saya mendapatkan kesalahan yang sama saat 'git push'. Di sisi klien saya memiliki dua asal dan master. Saya menghapus satu, lalu bekerja dengan baik.

Pabitra Dash
sumber
1

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.

venkat razesh
sumber
1

Juga di ubuntu, meskipun sudah ada kunci SSH yang dimasukkan dalam pengaturan di BitBucket, saya mendapatkan masalah ini. Alasannya, saya mencoba yang berikut:

sudo git push origin master

Tidak yakin mengapa, tetapi diselesaikan dengan menggunakan

git push origin master

Tidak ada sudo yang digunakan.

Nabin
sumber
1

Bagi saya, saya mencoba ini -

eval "$(ssh-agent -s)"

lalu aku lari

ssh-add ~/.ssh/path-to-the-keyfile

dan untuk menghasilkan kunci yang dapat Anda jalankan

ssh-keygen -t rsa -b 4096 -C "[email protected]"

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 :)

Joomler
sumber
1

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:

-E, --preserve-env Menunjukkan kebijakan keamanan yang diinginkan pengguna untuk melindungi variabel lingkungan yang ada. Kebijakan keamanan dapat mengembalikan kesalahan jika pengguna tidak memiliki izin untuk melestarikan lingkungan.

justin
sumber
1

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 .gitsuffix. Tambahkan remote sebagai berikut:

git remote add origin [email protected]:<user>/<project>

Litehouse
sumber
1

tl; dr

di ~/.ssh/configput

PubkeyAcceptedKeyTypes=+ssh-dss

Skenario Jika Anda menggunakan versi openSSH> 7, seperti katakan pada touchbar MacBook Pro itussh -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

PubkeyAcceptedKeyTypes=+ssh-dss

Sumber yang berfungsi untuk saya adalah buletin Gentoo ini

Sekarang Anda setidaknya dapat menggunakan GitHub dan kemudian memperbaiki kunci Anda ke RSA.

pamammer
sumber
1

Saya menemukan halaman ini saat mencari solusi untuk pesan kesalahan serupa yang digunakan git pullpada host jarak jauh:

$ git pull
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

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 pullberfungsi 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/configlaptop saya:

Host *
     ForwardAgent yes

Saya kemudian terhubung kembali ke host jarak jauh dengan ssh -AY remote_hostname, dan git pullsekarang berfungsi. Perubahan dalam konfigurasi memungkinkan untuk meneruskan keypair ssh saya dari mesin lokal saya ke host apa pun. The -Apilihan untuk sshbenar-benar depan dalam sesi ssh. Lihat lebih detail di sini.

Timur Shtatland
sumber
0

Mungkin agen ssh Anda tidak memungkinkan Anda dapat mencobanya

  1. Unduh git

http://git-scm.com/

  1. Pasang itu

  2. Aktifkan ssh-agent

C: \ Program Files \ Git \ cmd

start-ssh-agent

εΎε•Ÿε€«
sumber
0

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:

cat ~/.ssh/id_rsa.pub | pbcopy 

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.

ajlaracast
sumber