Ini adalah pertama kalinya saya mengakses GitHub dan saya tidak berpengalaman menggunakan konsol. Saya menggunakan MacBook menggunakan Bash. Ketika saya mencoba mengakses GitHub, saya mendapatkan ini:
git clone git@github.com:dhulihan/league-of-legends-data-scraper.git
Cloning into 'league-of-legends-data-scraper'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Saya sudah mencoba mengikuti instruksi pada halaman Github tentang izin yang ditolak.
Ketika saya menggunakan ssh -vT [email protected]
, saya mendapatkan yang berikut:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to github.com [192.30.252.129] port 22.
debug1: Connection established.
debug1: identity file /Users/XXXX/.ssh/id_rsa type -1
debug1: identity file /Users/XXXX/.ssh/id_rsa-cert type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version libssh-0.6.0
debug1: no match: libssh-0.6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /Users/XXXX/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/XXXX/.ssh/id_rsa
debug1: Trying private key: /Users/XXXX/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).
Selanjutnya, eval "$(ssh-agent -s)"
mengembalikan "Agen pid 2314", namun ssh-add -l
mengembalikan "Agen tidak memiliki identitas."
Dan di situlah saya terjebak.
Jawaban:
Detail lengkap dalam jawaban ini .
Singkatnya, ketika
ssh-add -l
kembali “Agen tidak memiliki identitas”, itu berarti bahwa kunci yang digunakan olehssh
(disimpan dalam file seperti~/.ssh/id_rsa
,~/.ssh/id_dsa
, dll) yang baik hilang, mereka tidak diketahuissh-agent
, yang merupakan agen otentikasi, atau bahwa hak akses mereka diatur secara tidak benar (misalnya, dapat ditulis dunia).Jika kunci Anda hilang atau jika Anda belum membuat, gunakan
ssh-keygen -t rsa
, lalussh-add
untuk menambahkannya.Jika kunci ada tetapi tidak diketahui
ssh-agent
(seperti jika ada di folder non-standar), gunakanssh-add /path/to/my-non-standard-ssh-folder/id_rsa
untuk menambahkannya.Lihat jawaban ini jika Anda mengalami masalah dengan
ssh-add
ataussh-agent
.sumber
ssh-add /path/to/keyX
untuk masing-masing, terutama jika mereka memiliki nama yang tidak standar. Detail di sini: stackoverflow.com/questions/3225862/… (jawaban yang bagus)ssh-add
lagi setelah menyelesaikan bagian izin dari masalah ini. Setelah ini,ssh -vT [email protected]
tidak berhasil. Saya memang perlu menambahkan jalur absolut seperti komentator yang disebutkan di atas. Lalu, itu semua saus.coba ini:
bekerja untukku
sumber
chmod 600 ~/.ssh/id_rsa
, kemudianssh-add ~/.ssh/id_rsa
JAWABAN 2019 untuk macOS Sierra & High Sierra & Catalina:
PS: sebagian besar jawaban lain meminta Anda membuat kunci ssh baru ... tetapi Anda tidak perlu melakukannya :)
Seperti dijelaskan secara rinci di https://openradar.appspot.com/27348363 , macOS / OS X hingga Yosemite digunakan untuk mengingat kunci SSH yang ditambahkan oleh perintah
ssh-add -K <key>
Jadi, inilah 4 langkah yang harus saya ambil agar bisa berfungsi:
1:
ssh-add ~/.ssh/PATH_TO_YOUR_SSH_PRIVATE_KEY (e.g. ~/.ssh/id_rsa)
2: Tambahkan berikut ini
~/.ssh/config
3: pastikan untuk menghapus entri gitconfig yang menggunakan pembantu osxkeychain:
4: restart terminal Anda agar mulai berlaku.
sumber
Saya telah terjebak beberapa saat pada masalah yang sama, yang akhirnya saya selesaikan.
Masalah saya : Saya tidak bisa melakukan push. Saya bisa memeriksa & melihat remote saya (menggunakan
git remote -v
), tetapi ketika saya dieksekusigit push origin master
, itu kembali:Permission denied (publickey). fatal: Could not read from remote repository.
dan sebagainya.Bagaimana saya menyelesaikannya:
ssh-keygen -t rsa
. Memasukkan nama untuk file kunci (ketika ditanya) tidak berguna.ssh-add /Users/federico/.ssh/id_rsa
, yang berhasil kembaliIdentity added: /Users/myname/.ssh/id_rsa (/Users/myname/.ssh/id_rsa)
ssh-add -l
perintah yang berfungsi / tampak berguna (setelah menjalankan langkah-langkah sebelumnya), itu berhasil mengembalikan kunci saya. Langkah terakhir menunjukkan kepada Anda di mana harus memeriksa kunci publik di halaman GitHub Anda. Dan perintah ini akan membantu Anda memeriksa semua kunci Anda:ls -al ~/.ssh
.Kemudian perintah push akhirnya bekerja!
Saya harap ini akan membantu! Semoga sukses untuk semua.
sumber
Jalankan perintah berikut:
Buka akun Github Anda: https://github.com/settings/profile
1) Klik: Kunci SSH dan GPG
2) Kunci SSH Baru dan Meletakkannya di sana
3) Tambahkan Kunci SSH
Selesai!
sumber
pertama-tama Anda harus masuk ke direktori ssh
untuk jenis perintah berikut di terminal Anda di mac atau apa pun yang Anda gunakan di jendela
sekarang di ssh di
sini Anda dapat menemukan semua kunci ssh / file yang terkait dengan semua proyek Anda. sekarang, ketik perintah berikut untuk menunjukkan kepada Anda jika ada kunci ssh yang tersedia
ini akan menunjukkan kepada Anda semua ssh yang tersedia, dalam kasus saya ada dua
sekarang, Anda harus memulai agen untuk menambahkan ssh di dalamnya. Untuk jenis ini ikuti perintah
sekarang last but not least Anda akan menambahkan ssh di agen ini ketik perintah berikut
menggantikan
sumber
Ini dapat menyebabkan terminal baru, id agen berbeda. Anda perlu menambahkan kunci pribadi untuk agen
sumber
Satu elemen tambahan yang saya sadari adalah bahwa folder .ssh biasanya dibuat di folder root Anda di Mac OS X / Users /. Jika Anda mencoba menggunakan ssh -vT [email protected] dari folder lain, itu akan memberi Anda kesalahan bahkan jika Anda telah menambahkan kunci yang benar.
Anda perlu menambahkan kunci lagi (ssh-tambahkan 'jalur yang benar ke id_rsa') dari folder saat ini untuk mengotentikasi berhasil (dengan asumsi bahwa Anda telah mengunggah kunci ke profil Anda di Git)
sumber
Ini bekerja untuk saya:
chmod 700 .ssh chmod 600 .ssh/id_rsa chmod 644 .ssh/id_rsa.pub
Kemudian, ketik ini:
ssh-add ~/.ssh/id_rsa
sumber
~/.ssh
izin. Namun, Anda dapat sangat meningkatkan jawaban Anda dengan menambahkan perintah lengkap (di sinichmod
) dan menjelaskan apa yang dilakukannya dan mengapa itu diperlukan.Setelah berjuang lama saya akhirnya bisa menyelesaikan masalah ini pada Windows, Bagi saya variabel Pengguna env GIT_SSH diatur untuk menunjuk ke
yang diinstal bersama dengan WinScp. Saya mengubah titik untuk menggunakan ssh.exe standar yang datang dengan git-scm "C: \ Program Files \ Git \ usr \ bin \ ssh.exe"
sumber
Langkah-langkah untuk BitBucket:
jika Anda tidak ingin membuat kunci baru, SKIP ssh-keygen
Salin kunci publik ke papan klip:
Masuk ke Bit Bucket: Pergi ke Lihat Profil -> Pengaturan -> Kunci SSH (Pada tab Keamanan) Klik Tambah Kunci, Tempelkan kunci dalam kotak, tambahkan judul deskriptif
Kembali ke Git Bash:
Anda harus mendapatkan:
Sekarang:
git pull
harus bekerjasumber
Saya mengalami masalah ini setelah memulihkan hard drive dari cadangan.
Masalahku: Saya bisa memeriksa & melihat remote saya (menggunakan git remote -v), tetapi ketika saya mengeksekusi git push origin master, ia kembali: Izin ditolak (publickey). fatal: Tidak bisa membaca dari repositori jarak jauh.
Saya sudah memiliki folder SSH dan kunci SSH, dan menambahkannya melalui Terminal (
ssh-add /path/to/my-ssh-folder/id_rsa
) berhasil menambahkan identitas saya, tetapi saya masih tidak bisa mendorong dan masih mendapat kesalahan yang sama. Membuat kunci baru adalah ide yang buruk bagi saya, karena itu terkait dengan izin sangat aman lainnya pada AWS.Ternyata tautan antara kunci dan profil Github saya rusak.
Solusi: Menambahkan kembali kunci ke Github di Profil> Pengaturan> Kunci SSH dan GPG menyelesaikan masalah.
Juga: Akun saya telah disiapkan otentikasi 2 faktor. Ketika hal ini terjadi, jika Terminal meminta kredensial, gunakan nama pengguna Anda - tetapi BUKAN kata sandi Github Anda. Untuk otentikasi 2-faktor, Anda perlu menggunakan kode otentikasi Anda (bagi saya, ini dihasilkan oleh Authy di ponsel saya, dan saya harus menyalinnya ke Terminal untuk pw).
sumber