Mendapatkan izin ditolak (kunci publik) di gitlab

134

Masalah saya adalah saya tidak dapat mendorong atau mengambil dari GitLab. Namun, saya dapat mengkloning (melalui HTTP atau melalui SSH). Saya mendapatkan kesalahan ini saat mencoba mendorong:

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

Dari semua utas yang saya lihat, inilah yang telah saya lakukan:

  • Siapkan kunci SSH di komputer saya dan tambahkan kunci publik ke GitLab
  • Selesai config --global untuk nama pengguna dan email
  • Dikloning melalui SSH dan melalui HTTP untuk memeriksa apakah itu akan menyelesaikan masalah
  • Selesai perintah ssh -T [email protected]

Jika Anda memiliki wawasan tentang cara menyelesaikan masalah saya, itu akan sangat kami hargai.

Alexandre Fernandes Bartolomeu
sumber
5
lari ssh -vvvv [email protected]untuk melihat apakah ia mengambil kunci SSH
Nils Werner
1
Apakah Anda menambahkan kunci SSH melalui gitlab.com/profile/keys ?
Tarif Akram
@ Nils Werner: Saya mendapatkan banyak baris ketika saya melakukan perintah ini, tetapi salah satunya adalah "Otentikasi berhasil (publickey)"
Alexandre Fernandes Bartolomeu
4
pastikan Anda tidak berjalan sudo git clone [email protected]:project/somethiing.git, jika tidak ssh akan mencari /root/.sshalih-alih kunci yang Anda unggah~/.ssh/id_rsa
rivanov
1
Saya memecahkan masalah yang sama dengan menambahkan kunci ke agen melalui "ssh-add ~ / .ssh / the_key" diikuti dengan mengotorisasi kunci mereka dengan frase. Ini adalah bagian pribadi dari apa yang saya tambahkan ke GitLab.
Celdor

Jawaban:

259

Saya menemukan ini setelah banyak mencari. Ini akan bekerja dengan baik untuk saya.

  1. Buka "Git Bash" seperti cmd. Klik kanan dan "Run as Administrator".
  2. Tipe ssh-keygen
  3. Tekan enter.
  4. Ini akan meminta Anda untuk menyimpan kunci ke direktori tertentu.
  5. Tekan enter. Ini akan meminta Anda untuk mengetikkan kata sandi atau masuk tanpa kata sandi.
  6. Kunci publik akan dibuat ke direktori tertentu.
  7. Sekarang masuk ke direktori dan buka .sshfolder.
  8. Anda akan melihat file id_rsa.pub. Buka di notepad. Salin semua teks darinya.
  9. Buka https://gitlab.com/profile/keys .
  10. Tempel di sini di bidang teks "kunci".
  11. Sekarang klik pada "Judul" di bawah. Ini akan terisi secara otomatis.
  12. Kemudian klik "Tambahkan kunci".

Sekarang cobalah dan itu akan berhasil dengan pasti.

Muhammad Laraib Khan
sumber
2
Jika Anda tersesat dalam menyalin file pub ke clipboard. coba yang berikut ini:type %userprofile%\.ssh\id_rsa.pub | clip
jquijano
5
di windows 10 jika Anda perlu mencari .ssh \ id_rsa.pub Anda dapat mengetikkan cat ini ~ / .ssh / id_rsa.pub di git bash itu akan menampilkan "Key", sehingga Anda dapat menyalin dan menempelkannya ke bidang teks di gitlab.com/profile/keys
Chutipong Roobklom
11
Pastikan untuk melakukan ini: ssh-add filename(dengan-path jika tidak di rsa dir) setelah mengikuti langkah
Blasanka
3
Saya melakukan ini, masalah tidak diperbaiki, mendapatkan izin ditolak
Billal Begueradj
. Bekerja seperti pesona. Terima kasih!
RafiAlhamd
62

Langkah 1: Menambahkan file konfigurasi di ~/.ssh/configfile yang terlihat seperti

   User git
   Hostname gitlab.com
   IdentityFile ~/.ssh/id_rsa_gitlab
   TCPKeepAlive yes
   IdentitiesOnly yes

Langkah 2: Cukup kloning git repo TANPA sudo.
Dokumentasi: https://gitlab.com/help/ssh/README#working-with-non-default-ssh-key-pair-paths

Fedo Peralta
sumber
1
Ini diperlukan jika file kunci dengan nama default sudah digunakan untuk tujuan yang berbeda. Jika Anda membuat file kunci dengan nama non-default, seperti id_rsa_gitlabdalam contoh Fedo, Anda perlu menyediakan file konfigurasi. Artikel bagus Gitlab tentang masalah ini: gitlab.com/help/ssh/…
Dany
Ini berhasil untuk saya. Saya memiliki kunci Github & Gitlab, sehingga Anda mendapatkan solusi ini.
M.Cush
Saya harus mengubah Hostnameuntuk Hostmembuat ini bekerja
Sadee
27

Saya pikir solusi sederhananya adalah menambahkan kunci pribadi ke agen otentikasi (jika kunci Anda tidak ~/.ssh/id_rsa),

ssh-add ~/.ssh/<your private key>

Anda pada dasarnya membiarkan yang ssh-agentmengurusnya.

Selain itu, Anda dapat menambahkannya secara permanen .

Hussain
sumber
itu adalah file dengan ekstensi .pub
Felipe
7
Tidak. Kunci pribadi adalah file tanpa .pubekstensi.
Hussain
15

Dalam kasus saya itu tidak berfungsi di WSL (Windows Subsystem for Linux).

Ketika saya memulai WSL, saya harus melakukannya

  • mulai ssh-agent_ eval $(ssh-agent -s)
  • tambahkan kunci ke ssh-agent: ssh-add ~/.ssh/id_rsa
  • jika diminta, masukkan kata sandi

Sekarang koneksi berfungsi.
Kita bisa mengujinya denganssh -T [email protected]

catatan:

TmTron
sumber
11

pastikan Anda tidak berjalan sudo git clone [email protected]:project/somethiing.git, jika tidak ssh akan mencari /root/.sshalih-alih kunci yang Anda unggah~/.ssh/id_rsa

rivanov.dll
sumber
10

Ada solusi yang sangat sederhana untuk ini: alih-alih bekerja dengan ssh - pindah ke https. untuk melakukan ini: di folder proyek Anda, Anda memiliki folder .git di sana - Anda memiliki file konfigurasi - buka di editor teks dan ubah baris

url [email protected]: namaanda / proyekanda.git

untuk

url = https://gitlab.com/yourname/yourproject.git

Elad
sumber
Terima kasih. Bekerja untuk saya.
ktv6
7

jika Anda menggunakan Linux atau macox, coba ini di terminal:

ssh-add -l

jika tidak mengembalikan apa-apa, coba ini:

ssh-add

itu harus membuat identitas di ~ / .ssh / id_rsa

setelah coba lagi:

ssh-add -l

itu harus mengembalikan identitas Anda, jadi setelah mencoba lagi untuk mengkloning, itu harus berfungsi

NB: jangan lupa menambahkan kunci ssh Anda di gitlab profil Anda

Terima kasih

rapaelec.dll
sumber
5

Dalam kasus saya, itu bukan masalah gitlab, tetapi konfigurasi sshd. Server ssh tidak mengizinkan koneksi kecuali untuk daftar pengguna. Pengguna git, yang terhubung dari jarak jauh ke gitlab, tidak ada dalam daftar itu. Jadi, periksa ini sebelum hal lain.

Anda dapat memeriksa konfigurasi server ssh Anda di /etc/ssh/sshd_config. Jika Anda memiliki baris dengan opsi AllowUsers, tambahkan git ke dalamnya:

AllowUsers user1 user2 user3 git
skotperez.dll
sumber
3

Saya menjalankan gitlab dengan buruh pelabuhan, inilah yang saya lakukan untuk memperbaiki masalah saya.

Menemukan bahwa di dalam docker / var / log / gitlab / sshd / current ada beberapa kemunculan pesan:

Autentikasi ditolak: kepemilikan atau mode yang buruk untuk file /var/opt/gitlab/.ssh/authorized_keys

Setelah itu saya mengubah kepemilikan file itu dari 99: pengguna menjadi git: pengguna dengan:

chown git: pengguna authorized_keys

xab
sumber
1
Terima kasih banyak. Saya menjalankan Gitlab di Kubernetes dan direktori / gitlab-data (yang juga merupakan mountpoint untuk authorized_keys) memiliki masalah izin. Chown sederhana sudah cukup.
Dillen Meijboom
3

Langkah-langkah yang harus dilakukan, mendapat kesalahan yang sama tetapi saya memperbaikinya. Gitlab menginginkan ssh-rsa jadi di bawah ini adalah kode untuk menjalankan ssh untuk rsa

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

[email protected] adalah email akun gitlab Anda

  1. Ini akan meminta Anda untuk masuk jadi tekan saja Enter setelah kode di bawah ini diminta,

    Masukkan file untuk menyimpan kunci (/home/yourDesktopName/.ssh/id_rsa):

  2. Ini akan meminta Anda lagi untuk masuk jadi tekan saja Enter setelah kode di bawah ini diminta,

    Masukkan frasa sandi (kosongkan jika tidak ada frasa sandi):

  3. Ini akan meminta lagi untuk yang terakhir Anda masuk jadi tekan saja Enter setelah kode di bawah ini diminta,

    Masukkan lagi frasa sandi yang sama:

  4. Anda akan menunjukkan hasil ssh-rsa Anda.

  5. Login ke akun Gitlab Anda dan Pergi ke navbar kanan Anda akan mendapatkan pengaturan dan di sidebar kiri Anda akan mendapatkan kunci ssh. Masuk ke dalamnya.

  6. Lihat di atas prompt yang meminta Anda untuk masuk, Anda akan mendapatkan jalur ssh-rsa.

  7. Buka folder SSH Anda dan dapatkan id_rsa.pub

  8. Buka dan dapatkan kuncinya dan Salin Tempel ke Gitlab dan Anda hampir selesai.

  9. Diperiksa oleh: ssh -T [email protected]

  10. Kamu akan mendapatkan: Welcome to GitLab, @joy4!

  11. Selesai.

Y. Joy Ch. Singha
sumber
Terima kasih. ini berfungsi pada windows 10. Saya mencoba ed25519 seperti yang diperintahkan gitlab tetapi tidak berfungsi.
Dika
Jawaban ini cukup bagus - tidak yakin mengapa tidak dipilih lebih tinggi.
mgibson
3

Sebelumnya sangat sulit bagi saya tetapi ketika saya mencobanya menjadi sangat mudah untuk menambahkan kunci ssh di Mac dan Linux. Ada beberapa langkah dan perintah untuk melakukan ini sebagai berikut:

  1. Buka terminal sistem Anda dan pindahkan ke dalam direktori proyek Anda dengan perintah:
cd 'project directory name'
  1. Jalankan perintah ssh-keygendi terminal itu dan masukkan hingga gambar randomart kunci muncul di sana.

  2. Kemudian masukkan satu perintah lagi di terminal itu:

cat ~/.ssh/id_rsa.pub

Ini akan menghasilkan kunci ssh Anda. Kunci akan dimulai dengan ssh-rsadan diakhiri dengan .local.

  1. Salin kunci dan buka bagian profil Gitlab Anda lalu ssh keybagian dan tempel di sana. Klik pada Addtombol ini akan berfungsi.
kumar ujjawal
sumber
ini berhasil untuk saya! terima kasih
Shamseer Ahammed
2

Saya memiliki masalah yang sama, saya menyelesaikannya dengan menambahkan kunci ssh baru:

  1. ssh-keygen -t ed25519 -C "[email protected]"
  2. Salin kunci SSH publik Anda ke papan klip (xclip -sel clip < ~/.ssh/id_ed25519.pub dalam kasus saya di Linux)
  3. Di gitlab, buka settings=>sshkunci dan lewati kunci baru
Ahmed AMMOURI
sumber
2

Ketika Anda memiliki beberapa akun git dan Anda menginginkan kunci ssh yang berbeda

Anda harus mengikuti langkah yang sama untuk menghasilkan kunci ssh, tetapi pastikan Anda

ssh-keygen -t ed25519 -C "[email protected]" 

Masukkan jalur yang ingin Anda simpan (Mis: my-pc / Desktop / .ssh / ed25519)

Tambahkan kunci publik ke gitlab Anda ( Cara menambahkan kunci ssh ke gitlab )

Anda harus identitas ssh baru menggunakan perintah di bawah ini

ssh-add ~/my-pc/Desktop/.ssh/ed25519
Srikrushna
sumber
2

Dua hal utama

  1. Anda harus memiliki id_rsa.pub dan id_rsa (private) key di folder .ssh Anda (yang seharusnya ada di home folder Anda, buatlah jika tidak ada, taruh kunci Anda). Ini tidak akan berhasil Jika Anda menamai file kunci Anda secara berbeda

  2. Ubah izin id_rsa sebagai chmod 400 ~ / .ssh / id_rsa

cherankrish
sumber
2

Masalah lain yang dapat menyebabkan perilaku ini adalah saat Anda memiliki penyetelan dengan 2 kemungkinan% HOME% -lokasi.

Saya menggunakan PC tempat beberapa dokumen saya disimpan secara lokal, dan beberapa di antaranya disimpan di drive jaringan. Beberapa aplikasi menganggapnya milik C:\Users\<MyUserName>\saya %home%, yang lain menganggapnya U:\sebagai rumah.

Ternyata ssh-keygenmeletakkan kunci pribadi saya di bawah C:\users\<MyUserName>\, dan itu ssh -Tdan ssh -vjuga lihat di sana.

Jadi semuanya tampaknya berfungsi dengan baik, kecuali itu git clone, git pushdan yang lain mencari kuncinyaU:\ . Yang gagal, jadi saya mendapatkan kesalahan yang disebutkan di atas.

Perlu waktu satu jam untuk mengetahuinya, tetapi pada akhirnya solusinya sederhana: Saya menyalin semuanya dari C:\Users\<MyUserName>\.sshhinggaU:\.ssh

Emil Bode
sumber
1

Saya menyelesaikannya seperti ini ..

Menghasilkan kunci untuk Windows menggunakan perintah ini:

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

tetapi masalahnya adalah setelah menjalankan perintah ini, muncul baris: "Masukkan file untuk menyimpan kunci (/c/Users/xxx/.ssh/id_rsa):" Di sini, saya hanya memberikan nama file karena itu kunci saya disimpan di pwd saya dan bukan di lokasi yang diberikan. Ketika saya melakukan "git clone", itu mengasumsikan kunci berada di lokasi "/c/Users/xxx/.ssh/id_rsa" tetapi tidak ditemukan, oleh karena itu terjadi kesalahan.

Pada saat pembuatan 2 file kunci dibuat, katakanlah "file1" & "file1.pub". Saya mengganti nama kedua file ini menjadi

file1 -> id_rsa 

dan

file1.pub -> id_rsa.pub

dan ditempatkan keduanya di lokasi "/c/Users/xxx/.ssh/"

Sugandha Jain
sumber
1

Pergi ke terminal dan buat ulang kunci ssh lagi. Tipe ssh-keygen . Ini akan menanyakan Anda di mana Anda ingin menyimpannya, ketik jalurnya.

Kemudian salin kunci publik ke platform gitlabs. Biasanya dimulai dengan ssh-rsa.

recussive
sumber
1

Masalahnya bagi saya adalah, saya beralih UsePAMdari yeske nodi file konfigurasi SSH di bawah /etc/ssh/sshd_config. Dengan UsePAM yessemuanya bekerja dengan sempurna.

manifestor
sumber
1

Saya menemukan solusinya di bantuan gitlab .

To create a new SSH key pair: 
 1. Open a terminal on Linux or macOS, or Git Bash / WSL on Windows.
 2. Generate a new ED25519 SSH key pair: ssh-keygen -t ed25519 -C "[email protected]"
 2.1 Or, if you want to use RSA: ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
 3. Next, you will be prompted to input a file path to save your SSH key pair to... use the suggested path by pressing Enter
 4. Once the path is decided, you will be prompted to input a password to secure your new SSH key pair. It's a best practice to use a password, but it's not required and you can skip creating it by pressing Enter twice.
 5. Copy your public SSH key to the clipboard by using one of the commands below depending on your Operating System:
        macOS:        pbcopy < ~/.ssh/id_ed25519.pub
        WSL / GNU/Linux (requires the xclip package):      xclip -sel clip < ~/.ssh/id_ed25519.pub
        Git Bash on Windows:      cat ~/.ssh/id_ed25519.pub | clip
 6. Navigating to SSH Keys and pasting your public key in the Key field
 7. Click the Add key button

Saya harap ini dapat membantu sebagian dari Anda!

JoeyGutMen
sumber
1

Bagaimana cara menambahkan kunci SSH ke akun gitlab di ubuntu?

  1. Buka terminal di direktori proyek Anda.
  2. Ketik 'ssh-keygen -o -t rsa -b 4096 -C "email gitlab Anda" dan tekan enter
  3. Ketik 'vim /home/mnbtech/.ssh/id_rsa.pub' dan tekan enter (atau secara manual buka 'id_rsa.pub' Anda dari tempat Anda menyimpannya)
  4. Kunci SSH akan muncul. Salin itu dan

  5. Buka akun gitlab Anda.

  6. Klik gambar profil dan klik pengaturan
  7. Di sisi kiri pilih SSH-Keys
  8. Kemudian tempel kunci tersebut. Klik tambahkan kunci

SSH-Key akan ditambahkan!

(NB jika Anda telah Menghasilkan Kunci SSH Pratinjau dan Mendapatkan izin ditolak (kunci publik). Anda Hapus Kunci ssh Pratinjau Anda dan Buat yang baru dan tambahkan git nama pengguna dan email di terminal Anda)

Ismail Hossain
sumber
Apa yang berbeda dalam jawaban itu dengan petunjuk sebelumnya?
RalfFriedl
1

Saya memecahkan [email protected]: Permission denied (publickey)masalah menggunakan instruksi berikut

  1. LARI cat ~/.ssh/id_rsa.pub
  2. Salin id_rsa.pub(kunci publik) ke getlab `Setting -> SSH Keys
  3. LARI cat ~/.ssh/id_rsa
  4. Salin id_rsa(kunci pribadi) ke `Code_repo-> git_auth-> id_rsa

CATATAN: Jaga pengguna mesin jika Anda menggunakan rootpengguna di DockerFile atau di mana pun, lalu gunakan sudo susebelum menjalankan perintah di atas untuk mendapatkan kunci publik dan pribadi pengguna root.

Umar Hayat
sumber
1

Dalam kasus kami, ini bukanlah masalah di sisi pengguna / klien, tetapi di sisi server Gitlab.

Kami menjalankan instans Gitlab CE 12.9 lokal di CentOS 7.1.

Kami menemukan bahwa di server, file .ssh / authorized_keys tidak diperbarui dengan benar. Pengguna membuat kunci SSH mereka (mengikuti Gitlab panduan) dan menambahkannya ke server Gitlab, tetapi server tidak memperbarui authorized_keys , sehingga akan selalu mengakibatkan izin ditolak kesalahan.

Solusinya adalah dengan membangun kembali file authorized_keys dengan menjalankan:

$ sudo gitlab-rake gitlab:shell:setup

Itu akan bekerja untuk siapa saja yang menambahkan kunci mereka sebelum menjalankan tugas rake. Untuk pengguna berikutnya yang akan menambahkan kunci mereka, seseorang harus menjalankan tugas rake lagi secara manual.

Solusi yang lebih permanen adalah dengan tidak menggunakan file authorized_keys dan sebagai gantinya menggunakan pencarian terindeks di database Gitlab :

GitLab Shell menyediakan cara untuk mengotorisasi pengguna SSH melalui pencarian cepat yang diindeks ke database GitLab. GitLab Shell menggunakan sidik jari kunci SSH untuk memeriksa apakah pengguna berwenang untuk mengakses GitLab.

Tambahkan berikut ini ke sshd_configfile Anda . Ini biasanya terletak di /etc/ssh/sshd_config, tetapi /assets/sshd_configjika Anda menggunakan Omnibus Docker:

Match User git    # Apply the AuthorizedKeysCommands to the git user only   
  AuthorizedKeysCommand /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell-authorized-keys-check git %u %k   
  AuthorizedKeysCommandUser git 
Match all    # End match, settings apply to all users again 

Muat ulang OpenSSH:

# Debian or Ubuntu installations   
sudo service ssh reload

# CentOS installations   
sudo service sshd reload 

Konfirmasikan bahwa SSH berfungsi dengan menghapus kunci SSH pengguna Anda di UI, menambahkan yang baru, dan mencoba menarik repo.

Secara default (baik default pada instalasi kami), file Write to authorized_keys diperiksa di Area Admin> pengaturan Optimasi Kinerja . Jadi kami menghapus centang itu dan menggunakan database Gitlab sebagai gantinya.

masukkan deskripsi gambar di sini

Setelah menyiapkan pencarian terindeks dan menghapus centang pada file Write to authorized_keys , akses SSH menjadi OK.

Gino Mempin
sumber
1

Untuk siapa saja yang menggunakan Windows 10 dan tidak ada yang berfungsi untuknya:

Dalam kasus saya, saya harus mengkloning repo dengan https, bukan ssh dan sebuah jendela muncul meminta kredensial saya. Setelah itu semuanya bekerja dengan baik.

Tasos Anesiadis
sumber
1

Saya tahu, saya menjawab ini sangat terlambat dan bahkan StackOverflow mengonfirmasi jika saya benar-benar ingin menjawab. Saya menjawab karena tidak ada yang benar-benar menggambarkan masalah yang sebenarnya sehingga ingin berbagi hal yang sama.

Dasar

Pertama, pahami apa itu remote disini. Remote adalah GitLab dan sistem Anda adalah lokal, jadi ketika kita berbicara tentang remote origin, URL apa pun yang disetel dalam git remote -voutput Anda adalah URL jarak jauh Anda.

Protokol

Pada dasarnya, Git clone / push / pull bekerja pada dua protokol yang berbeda (ada juga yang lain) -

  1. Protokol HTTP
  2. Protokol SSH

Ketika Anda mengkloning repo (atau mengubah URL jarak jauh) dan menggunakan URL HTTPs seperti https://gitlab.com/wizpanda/backend-app.git maka itu menggunakan protokol pertama yaitu protokol HTTP.

Sedangkan jika Anda mengkloning repo (atau mengubah remote URL) dan menggunakan URL like [email protected]:wizpanda/backend-app.git maka menggunakan protokol SSH.

Protokol HTTP

Dalam protokol ini, setiap operasi jarak jauh yaitu clone, push & pull menggunakan otentikasi sederhana yaitu nama pengguna & kata sandi dari remote Anda (GitLab dalam hal ini) yang berarti untuk setiap operasi, Anda harus mengetikkan nama pengguna & kata sandi Anda yang mungkin merepotkan .

Jadi ketika Anda push / pull / clone, GitLab / GitHub mengotentikasi Anda dengan nama pengguna & kata sandi Anda dan memungkinkan Anda untuk melakukan operasi.

Jika Anda ingin mencoba ini, Anda dapat beralih ke HTTP URL dengan menjalankan perintah git remote set-url origin <http-git-url>.

Untuk menghindari kasus tersebut, Anda dapat menggunakan protokol SSH.

Protokol SSH

Koneksi SSH sederhana berfungsi pada pasangan kunci publik-pribadi. Jadi dalam kasus Anda, GitLab tidak dapat mengautentikasi Anda karena Anda menggunakan URL SSH untuk berkomunikasi. Sekarang, GitLab harus mengenal Anda dengan cara tertentu. Untuk itu, Anda harus membuat pasangan kunci publik-pribadi dan memberikan kunci publik ke GitLab.

Sekarang ketika Anda mendorong / menarik / mengkloning dengan GitLab, GIT (SSH secara internal) akan secara default menawarkan kunci pribadi Anda ke GitLab dan mengkonfirmasi identitas Anda dan kemudian GitLab akan memungkinkan Anda untuk melakukan operasi.

Jadi saya tidak akan mengulangi langkah-langkah yang telah diberikan oleh Muhammad, saya akan mengulanginya secara teoritis.

  1. Buat pasangan kunci `ssh-keygen -t rsa -b 2048 -C" My Common SSH Key "
  2. Pasangan kunci yang dihasilkan akan secara default ~/.sshbernama id_rsa.pub(kunci publik) & id_rsa(kunci pribadi).
  3. Anda akan menyimpan kunci publik ke akun GitLab Anda (kunci yang sama dapat digunakan di banyak atau server / akun apa pun).
  4. Saat Anda mengkloning / mendorong / menarik, GIT menawarkan kunci pribadi Anda.
  5. GitLab mencocokkan kunci pribadi dengan kunci publik Anda dan memungkinkan Anda untuk melakukannya.

Tips

Anda harus selalu membuat kunci rsa yang kuat dengan setidaknya 2048 byte. Jadi perintahnya bisa ssh-keygen -t rsa -b 2048.

https://gitlab.com/help/ssh/README#generating-a-new-ssh-key-pair

Pikiran umum

Kedua pendekatan tersebut memiliki pro & kontra. Setelah saya mengetik teks di atas, saya mencari lebih banyak tentang ini karena saya tidak pernah membaca sesuatu tentang ini.

Saya menemukan dokumen resmi ini https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols yang menceritakan lebih banyak tentang ini. Maksud saya di sini adalah, dengan membaca kesalahan dan memikirkan kesalahan tersebut, Anda dapat membuat teori atau pemahaman Anda sendiri dan kemudian dapat mencocokkan dengan beberapa hasil Google untuk memperbaiki masalah tersebut :)

Shashank Agrawal
sumber
0

Saya menambahkan saya ~/.ssh/id_rsa.pubke daftar Kunci SSH yang diketahui di pengaturan GitLab saya https://gitlab.com/profile/keys . Itu memecahkan masalah saya. :-)

seonghuhn
sumber
0

Saya menggunakan ubuntu 18.04, dan itu sebenarnya masalah izin di mesin lokal saya. Masalahnya hilang saat saya menyetel izin baca / tulis ke folder .git saya.

manian
sumber
0

Yah saya punya masalah yang sama dan setelah mencoba jawaban yang diajukan @Kk. Namun, saya hanya dapat membuatnya berfungsi dengan hanya mengubah url asal di file .git / config ke alamat https: https://gitlab.com/mygitlabusername/mygitproject.git

Karena akses melalui ssh ditolak, saya pikir menggunakan https seharusnya tidak menjadi masalah. Namun itu akan meminta nama pengguna dan kata sandi Anda untuk setiap push ke di repositori

larrytech.dll
sumber
0

Silakan gunakan git config credential.helper storejika situs Anda menggunakan TLS / SSL. Semoga ini berhasil

gmaam
sumber
0

Tampaknya ada perbedaan antara dua cara untuk mengakses repositori git yaitu menggunakan SSH atau HTTPS. Bagi saya, saya mengalami kesalahan karena saya mencoba mendorong repositori lokal saya menggunakan SSH.

Masalah ini dapat diselesaikan dengan mudah dengan mengklik tombol klon di halaman landing proyek Anda dan menyalin link HTTPS dan menggantinya ke link SSH yang muncul dengan format "git @ gitlab ...".

tonderaimuchada
sumber
Itu tidak menjawab pertanyaan itu.
RalfFriedl
0

Ubah izin :: chmod 400 ~ / .ssh / id_rsa Ini membantu saya.

Rajim
sumber