Saya telah mencoba googling dan membaca https://help.github.com/en/articles/connecting-to-github-with-ssh dan berbagai, berbagai panduan. Saya tidak dapat git push -u origin master
atau git push origin master
(perintah yang sama).
Saya sudah memiliki akun git saya setidaknya selama 2 tahun atau lebih. Saya telah berhasil membuat repo dan push -u origin master
fine di laptop saya tetapi di desktop ini saya mengalami masalah.
Inilah yang saya coba:
1. Saya telah menyiapkan nama pengguna git saya
2. Saya telah menyiapkan email pengguna git saya
3. Saya telah mengupload konten /home/meder/.ssh/id_rsa.pub saya ke halaman akun github. Saya telah memverifikasi bahwa saya tidak menempelkan spasi kosong apa pun
4. Saya telah membuat ~ / .ssh / config dengan konten berikut:
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Saya telah mengubah .ssh ke 700, id_rsa 600
5. Saya telah menambahkan asal jarak jauh yang tepat tanpa membuat kesalahan ketik :git remote add origin [email protected]:medero/cho.git
6. Untuk mengkonfirmasi # 5, berikut adalah .git / config saya. Direktori tersebut benar dan bukan direktori lain:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = [email protected]:medero/cho.git
7. ssh [email protected] -v
memberi saya Otentikasi yang berhasil
8. Satu hal yang aneh adalah, nama pengguna yang menyapaku telah t
ditambahkan ke dalamnya. Nama pengguna github saya adalah medero
, bukan medert
.
Hai mederot! Anda berhasil mengautentikasi, tetapi GitHub tidak menyediakan akses shell.
9. Saya tidak berada di belakang proxy atau firewall
10. Kunci ditawarkan, berikut output dari -v
:
debug1: Host 'github.com' is known and matches the RSA host key. debug1: Found key in /home/meder/.ssh/known_hosts:58 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering public key: /home/meder/.ssh/id_rsa debug1: Remote: Forced command: gerve mederot debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Server accepts key: { some stuff, dont know if i should share it debug1: Remote: Forced command: gerve mederot debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Authentication succeeded (publickey).
11. Berikut adalah perintah yang saya gunakan
mkdir cho
git init
touch README
git add README
git commit -m 'test'
git remote add origin [email protected]:medero/cho.git
git push -u origin master
12. Saya tidak ingin membuat kunci SSH baru.
13. Jika saya melakukan git clone menggunakan ssh dan melakukan edit, commit, dan git push, saya mendapatkan hal yang persis sama.
14. Inilah kesalahan sebenarnya:
$ git push
ERROR: Permission to medero/cho.git denied to mederot.
fatal: The remote end hung up unexpectedly
15. Saya telah menyiapkan nama pengguna github dan token github saya:
$ git config --global github.user medero $ git config --global github.token 0123456789yourf0123456789tokenSetel token GitHub untuk semua instance git di sistem
16. Saya telah mengonfirmasi bahwa nama pengguna github saya TIDAK mederot
dan token github saya BENAR per halaman akun saya (2 karakter pertama dan 2 karakter terakhir tervalidasi).
17. Untuk mengkonfirmasi # 16, ~ / .gitconfig berisi
[github]
token = mytoken...
user = medero
18. Saya melakukannya ssh-key add ~/.ssh/id_rsa
jika itu perlu ...
TEORI:
Saya curiga ada sesuatu yang mencurigakan karena ketika saya mendapatkan otentikasi ssh, sapaan pengguna adalah mederot
dan bukan medero
, yang merupakan akun saya. Mungkinkah sesuatu di akun github saya mungkin salah di-cache?
Saya juga mencurigai beberapa keanehan caching lokal ssh karena jika saya mv ~/.ssh/id_rsa KAKA
dan mv ~/.ssh/id_rsa.pub POOPOO
, dan melakukannya ssh [email protected] -v
, itu masih mengotentikasi saya dan mengatakan itu melayani /home/meder/.ssh/id_rsa saya ketika saya mengganti namanya ?! Itu harus di-cache ?!
Jawaban:
Pada langkah 18, saya anggap maksud Anda
ssh-add ~/.ssh/id_rsa
? Jika demikian, itu menjelaskan hal ini:... karena
ssh-agent
sedang menyimpan kunci Anda.Jika Anda melihat GitHub, ada akun mederot . Apakah Anda yakin ini tidak ada hubungannya dengan Anda? GitHub tidak boleh mengizinkan kunci publik SSH yang sama untuk ditambahkan ke dua akun, karena saat Anda menggunakan
[email protected]:...
URL, GitHub mengidentifikasi pengguna berdasarkan kunci SSH. (Bahwa ini seharusnya tidak diizinkan dikonfirmasi di sini .)Jadi, saya curiga (dalam penurunan urutan kemungkinan) bahwa salah satu kasus berikut ini:
Jika 1 bukan masalahnya maka saya akan melaporkan ini ke GitHub, sehingga mereka dapat memeriksa sekitar 2 atau 3.
Lebih:
ssh-add -l periksa apakah ada lebih dari satu nama jika ya, hapus dengan ssh-add -d "file kunci itu"
sumber
ssh-add ...
setiap kali saya ingin mengganti login github / ssh saya.ssh-add -d <keyfile>
tidak berhasil. (Menghapus file secara manual.) Caching yang Anda sebutkan harus dimuat ulang secara manual. Bagaimana?ssh-add -d
-> "Tidak dapat membuka koneksi ke agen otentikasi Anda."ssh-add
adalah sedikit yang melakukannya untuk saya. Terima kasih!Setelah Googling selama beberapa hari, saya menemukan ini adalah satu-satunya pertanyaan yang mirip dengan situasi saya.
Namun, saya baru saja menyelesaikan masalahnya! Jadi saya meletakkan jawaban saya di sini untuk membantu orang lain yang mencari masalah ini.
Inilah yang saya lakukan:
Buka "Keychain Access.app" (Anda dapat menemukannya di Spotlight atau LaunchPad)
Pilih "Semua item" di Kategori
Telusuri "git"
Hapus setiap item lama & aneh
Coba Dorong lagi dan itu BERHASIL
sumber
old & strange
. Apakah saya akan mengacaukan banyak hal ..?old & strange
Artinya item tanggal lama dan email atau nama pengguna salah. Anda dapat mengurutkan tabel berdasarkanDate Modified
.Jika masalah datang di windows, hapus Kredensial dari riwayat Windows.
hapus kredensial dari git
sumber
Di Mac, jika Anda memiliki banyak info masuk GitHub dan tidak menggunakan SSH, paksa login yang benar dengan menggunakan:
Ini juga berfungsi jika Anda mengalami masalah saat mendorong ke repositori pribadi.
sumber
Ini karena konflik.
Hapus semua kunci dari ssh-agent
Tambahkan kunci github ssh
Ini harus bekerja sekarang.
sumber
ssh-add -D
menghapus semua identitas, dapat berguna jika agen mengalami status tidak valid.Saya menggunakan Mac dan masalah diselesaikan dengan menghapus catatan github dari aplikasi akses rantai kunci: Inilah yang saya lakukan:
Langkah-langkah di atas disalin dari @spyar untuk kemudahan.
sumber
Saya menemukan solusinya sama dengan @spyar sediakan yang merupakan aplikasi Keychain Access menyimpan nama pengguna lama.
Ada 2 solusi untuk situasi ini:
Atau
ke
Semoga ini membantu.
sumber
Saya baru-baru ini mengalami masalah ini karena di repo lama di komputer saya yang telah didorong menggunakan https. langkah 5 dan 6 menyelesaikan masalah saya dengan mengatur ulang url jarak jauh untuk repo saya dari menggunakan url https ke url ssh
memeriksa remote menggunakan url https
kemudian atur ulang asal untuk menggunakan url ssh
memverifikasi remote baru
sekarang bisa berhasil
git push -u origin
Saya masih tidak yakin pengaturan apa yang akan saya ubah yang mungkin menyebabkan dorongan gagal ketika remote adalah https tetapi ini adalah solusi untuk masalah saya
sumber
Saya memiliki masalah yang sama dengan Anda. Setelah sekian lama menghabiskan waktu di Google, saya menemukan kesalahan saya disebabkan oleh beberapa pengguna yang telah menambahkan kunci yang sama di akun mereka.
Jadi, inilah solusi saya: hapus kunci ssh pengguna yang salah (saya dapat melakukannya karena pengguna yang salah juga akun saya). Jika pengguna yang salah bukan akun Anda, Anda mungkin perlu mengubah kunci ssh Anda, tetapi menurut saya ini tidak akan terjadi.
Dan menurut saya masalah Anda mungkin disebabkan oleh kesalahan ketik pada nama akun Anda.
sumber
Masalah ini juga disebabkan oleh:
Jika Anda menggunakan mac / linux, dan menggunakan 'ControlMaster' di ~ / .ssh / config, mungkin ada beberapa proses master kontrol ssh yang sedang berjalan.
Untuk menemukannya, jalankan:
Dan bunuh yang relevan.
sumber
Saya juga mengalami ini, apa yang menyebabkan ini bagi saya adalah bahwa saat mengkloning repo yang saya dorong perubahan saya, saya mengambil URL klon dari tab penyamaran tanpa masuk. (Saya masih tidak tahu bagaimana pengaruhnya). Itu karena alasan tertentu menyebabkan git memilih akun pengguna lain. Ketika saya mencobanya lagi dari halaman masuk yang tepat, itu berfungsi seperti biasa untuk saya.
sumber
Saya mengalami kesalahan ini saat menggunakan Travis CI untuk menyebarkan konten , yang melibatkan mendorong pengeditan ke repositori.
Saya akhirnya memecahkan masalah ini dengan memperbarui token akses pribadi GitHub yang terkait dengan akun Travis dengan
public_repo
izin akses cakupan:sumber