Gitlab'de izin reddedildi (genel anahtar)


134

Benim sorunum, GitLab'den aktaramıyorum veya alamıyorum. Bununla birlikte, klonlayabilirim (HTTP veya SSH aracılığıyla). İtmeye çalıştığımda bu hatayı alıyorum:

İzin reddedildi (publickey) önemli: Uzak depodan okunamadı

Baktığım tüm konulardan işte yaptığım şey:

  • Bilgisayarımda bir SSH anahtarı ayarlayın ve genel anahtarı GitLab'a ekleyin
  • Kullanıcı adı ve e-posta için yapılandırmayı --global yaptım
  • Sorunu çözüp çözmeyeceğini kontrol etmek için SSH ve HTTP aracılığıyla klonlandı
  • Ssh -T git@gitlab.com komutu tamamlandı

Sorunumu nasıl çözeceğiniz konusunda herhangi bir fikriniz varsa, çok memnun oluruz.


5
ssh -vvvv git@gitlab.comSSH anahtarını alıp almadığını görmek için koş
Nils Werner

1
SSH anahtarını gitlab.com/profile/keys aracılığıyla eklediniz mi?
Akram Fares

@ Nils Werner: Bu komutu verdiğimde çok sayıda satır alıyorum, ancak bunlardan biri "Kimlik doğrulama başarılı (publickey)"
Alexandre Fernandes Bartolomeu

4
çalışmadığınızdan emin olun sudo git clone git@gitlab.com:project/somethiing.git, aksi takdirde ssh /root/.sshyüklediğiniz anahtarın yerine ~/.ssh/id_rsa
bakacaktır

1
Aynı sorunu aracıya "ssh-add ~ / .ssh / the_key" yoluyla bir anahtar ekleyerek ve ardından anahtar kelime öbeği yetkilendirerek çözdüm. Bu, GitLab'a eklediğim şeyin özel kısmı.
Celdor

Yanıtlar:


260

Bunu çok araştırdıktan sonra buldum. Benim için gayet iyi çalışacak.

  1. Cmd gibi "Git Bash" e gidin. Sağ tıklayın ve "Yönetici Olarak Çalıştır" ı tıklayın.
  2. tip ssh-keygen
  3. Enter tuşuna basın.
  4. Anahtarı belirli bir dizine kaydetmenizi isteyecektir.
  5. Enter tuşuna basın. Parola yazmanızı veya parolasız girmenizi isteyecektir.
  6. Genel anahtar, belirli bir dizinde oluşturulacaktır.
  7. Şimdi dizine gidin ve .sshklasörü açın .
  8. Bir dosya göreceksiniz id_rsa.pub. Not defterinde açın. Tüm metni ondan kopyalayın.
  9. Https://gitlab.com/profile/keys adresine gidin .
  10. Buraya "anahtar" metin alanına yapıştırın.
  11. Şimdi aşağıdaki "Başlığa" tıklayın. Otomatik olarak doldurulacaktır.
  12. Ardından "Anahtar ekle" yi tıklayın.

Şimdi bir dene ve kesinlikle işe yarayacak.


2
Pub dosyasını panoya kopyalarken kaybolmanız durumunda. aşağıdakileri deneyin:type %userprofile%\.ssh\id_rsa.pub | clip
jquijano

5
Windows 10'da .ssh \ id_rsa.pub dosyasını bulmanız gerekiyorsa , git bash üzerine bu kediyi ~ / .ssh / id_rsa.pub yazabilirsiniz , bu size "Anahtar" ı gösterecektir, böylece kopyalayıp metin alanına yapıştırabilirsiniz içinde gitlab.com/profile/keys
Chutipong Roobklom

11
Bunu yaptığınızdan emin olun: ssh-add filename(rsa
dizininde değilse yolla

3
Bunu yaptım, sorun
çözülmedi

.Tılsım gibi çalıştı. Teşekkürler!
RafiAlhamd

62

Adım 1: ~/.ssh/configDosyaya şöyle görünen bir yapılandırma dosyası eklendi

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

Adım 2: Git deposunu sudo OLMADAN klonlayın.
Belgeler: https://gitlab.com/help/ssh/README#working-with-non-default-ssh-key-pair-paths


1
Varsayılan ada sahip anahtar dosyası zaten farklı amaçlar için kullanılıyorsa bu gereklidir. id_rsa_gitlabFedo'nun örneğinde olduğu gibi , varsayılan olmayan bir ada sahip bir anahtar dosyası oluşturuyorsanız , bir yapılandırma dosyası sağlamanız gerekecektir. Gitlab'ın konuyla ilgili güzel makalesi: gitlab.com/help/ssh/…
Dany

Bu benim için çalıştı. Hem Github hem de Gitlab anahtarlarına sahiptim, bu yüzden bu çözüm için.
M.Cush

Ben değiştirmek zorunda Hostnameiçin Hostbu çalışma yapmak
sadee

27

Bence basit çözüm, kimlik doğrulama aracısına özel anahtar eklemektir (anahtarınız değilse ~/.ssh/id_rsa),

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

Temelde ssh-agentbununla ilgilenmesine izin verdin .

Ek olarak, kalıcı olarak ekleyebilirsiniz .


.pub uzantılı dosya
Felipe

7
Hayır. Özel anahtar, .pubuzantısı olmayan dosyadır .
Hussain

15

Benim durumumda WSL'de (Linux için Windows Alt Sistemi) çalışmadı.

WSL'ye başladığımda, yapmalıyım

  • ssh-agent_'ı başlat eval $(ssh-agent -s)
  • anahtarı ssh-agent'a ekleyin: ssh-add ~/.ssh/id_rsa
  • istenirse şifreyi girin

Şimdi bağlantı çalışıyor.
Bunu test edebilirizssh -T git@github.com

notlar:


12

çalışmadığınızdan emin olun sudo git clone git@gitlab.com:project/somethiing.git, aksi takdirde ssh /root/.sshyüklediğiniz anahtarın yerine bakar~/.ssh/id_rsa


Teşekkür ederim adamım. Şirketim proje em / klasörüne ihtiyaç duyuyor. Sudo kullanarak ssh'ı geliştirmek zorunda kaldım. Bu şekilde, sudo git klonunu kullanabilirim. Tavsiyen bana çok yardımcı oldu.
Jocsã

10

Bunun çok basit bir çözümü var: ssh ile çalışmak yerine - https'ye geçin. bunu yapmak için: proje klasörünüzde bir .git klasörünüz var - bir yapılandırma dosyanız var - bir metin düzenleyicide açın ve satırı değiştirin

url =git@gitlab.com: adınız / projeniz.git

için

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


Teşekkür ederim. Benim için çalıştı.
ktv6

7

Linux veya macox'taysanız, bunu terminalde deneyin:

ssh-add -l

hiçbir şey döndürmezse, şunu deneyin:

ssh-add

~ / .ssh / id_rsa içinde kimlik oluşturmalıdır

yeniden denemeden sonra:

ssh-add -l

kimliğinizi geri vermelidir, bu yüzden klonlamayı tekrar denedikten sonra çalışması gerekir

NB: ssh anahtarınızı profilinize eklemeyi unutmayın gitlab

Teşekkürler


5

Benim durumumda, bu bir gitlab sorunu değil, bir sshd yapılandırması sorunu. Ssh sunucusu, bir kullanıcı listesi dışında bağlantıya izin vermedi. Gitlab'a uzaktan bağlanan kullanıcı git bu listede yoktu. Yani, her şeyden önce bunu kontrol edin.

Ssh sunucu yapılandırmanızı içinde kontrol edebilirsiniz /etc/ssh/sshd_config. Seçeneği olan bir satırınız varsa AllowUsers, ona git ekleyin:

AllowUsers user1 user2 user3 git

3

Docker ile çalışan gitlab var, sorunumu çözmek için bunu yaptım.

Bulunan içerde liman işçisi / var / log / gitlab / sshd / akım bir mesajın birden olay vardı:

Kimlik doğrulama reddedildi: /var/opt/gitlab/.ssh/authorized_keys dosyası için kötü sahiplik veya modlar

Bundan sonra ben o dosyanın sahipliğini değişti 99: kullanıcıları için Git: kullanıcıları ile:

chown git: users auth_keys


1
Çok teşekkür ederim. Gitlab'ı Kubernetes üzerinde çalıştırıyorum ve / gitlab-data dizininde (aynı zamanda yetkili_keys için bağlama noktasıdır) izin sorunları vardı. Basit bir yemek yeterliydi.
Dillen Meijboom

3

Yapılacak adımlar aynı hatayı aldı ama düzelttim. Gitlab ssh-rsa istiyor, bu nedenle rsa için ssh çalıştırma kodu aşağıdadır

  1. ssh-keygen -o -t rsa -b 4096 -C "name@gmail.com"

name@gmail.com gitlab hesabı e-postanızdır

  1. Sizden girmenizi isteyecektir, bu nedenle aşağıdaki kod istendikten sonra Enter tuşuna basmanız yeterlidir.

    Anahtarın kaydedileceği dosyayı girin (/home/yourDesktopName/.ssh/id_rsa):

  2. Tekrar girmenizi isteyecektir, bu nedenle aşağıdaki kod istendikten sonra Enter tuşuna basmanız yeterlidir.

    Parola girin (parola yoksa boştur):

  3. Son girmeniz için tekrar soracaktır, bu nedenle aşağıdaki kod istendikten sonra Enter tuşuna basmanız yeterlidir.

    Aynı parolayı tekrar girin:

  4. Ssh-rsa oluşturmanızı göstereceksiniz.

  5. Gitlab hesabınıza giriş yapın ve sağdaki gezinme çubuğuna gidin, ayarı alacaksınız ve sol kenar çubuğunda ssh anahtarını alacaksınız. Girin.

  6. Sizden girmenizi isteyen uyarının üstüne bakın, ssh-rsa yolunu göreceksiniz.

  7. SSH klasörünüze gidin ve id_rsa.pub dosyasını alın

  8. Açın ve anahtarı alın ve Yapıştır'ı Gitlab'a Kopyala ve neredeyse bitti.

  9. Kontrol eden: ssh -T git@gitlab.com

  10. Alacaksın: Welcome to GitLab, @joy4!

  11. Bitti.


Teşekkürler. bu Windows 10'da çalışıyor. gitlab'ın talimat verdiği gibi ed25519'u denedim ama çalışmıyor.
Dika

Bu cevap oldukça iyi - neden daha yüksek oylanmadığından emin değilim.
mgibson

3

Daha önce benim için çok zordu ama denediğimde Mac ve Linux'ta ssh anahtarını eklemek çok kolay oldu. Bunu yapmak için aşağıdaki gibi birkaç adım ve komut vardır:

  1. Sisteminizin bir terminalini açın ve proje dizininizin içine şu komutla gidin:
cd 'project directory name'
  1. ssh-keygenBu terminalde komutu çalıştırın ve anahtarın randomart görüntüsü orada görünene kadar girin.

  2. Ardından bu terminale bir komut daha girin:

cat ~/.ssh/id_rsa.pub

Ssh anahtarınızı oluşturacaktır. Anahtar ile başlayacak ssh-rsave ile bitecektir .local.

  1. Anahtarı kopyalayın ve Gitlab profilinize gidin, ardından ssh keybölüme yapıştırın ve oraya yapıştırın. AddBu işe yarayacak düğmeye tıklayın .

bu benim için çalıştı! teşekkürler
Shamseer Ahammed

2

Aynı sorunu yaşadım, yeni bir ssh anahtarı ekleyerek çözdüm:

  1. ssh-keygen -t ed25519 -C "email@example.com"
  2. Genel SSH anahtarınızı panoya kopyalayın ( xclip -sel clip < ~/.ssh/id_ed25519.pubbenim durumumda Linux'ta)
  3. Gitlab'de, settings=>sshanahtarlara gidin ve yeni anahtarı geçin

2

Birden fazla git hesabınız olduğunda ve farklı bir ssh anahtarı istediğinizde

Ssh anahtarını oluşturmak için aynı adımı izlemelisiniz, ancak emin olun

ssh-keygen -t ed25519 -C "your-email-id@gmail.com" 

Kaydetmek istediğiniz yolu girin (Örn: bilgisayarım / Masaüstü / .ssh / ed25519)

Genel anahtarı gitlab'ınıza ekleyin (gitlab'a ssh anahtarı nasıl eklenir )

Aşağıdaki komutu kullanarak yeni ssh kimliğine sahip olmalısınız

ssh-add ~/my-pc/Desktop/.ssh/ed25519

2

Esas olarak iki şey

  1. .Ssh klasörünüzde id_rsa.pub ve id_rsa (özel) anahtarlarına sahip olmalısınız (ana klasörünüzde olmalıdır, yoksa oluşturun, anahtarlarınızı koyun). Anahtar dosyalarınızı farklı adlandırdıysanız işe yaramaz

  2. İd_rsa'nın iznini chmod 400 ~ / .ssh / id_rsa olarak değiştirin


2

Bu davranışa neden olabilecek diğer bir sorun, 2 olası% HOME% -konumuna sahip bir kuruluma sahip olduğunuz zamandır.

Bazı belgelerimin yerel olarak, bazılarının da bir ağ sürücüsünde depolandığı bir bilgisayar kullanıyorum. Bazı uygulamalar C:\Users\<MyUserName>\benim olduğunu sanıyor %home%, diğerleri oranın U:\ev olduğunu düşünüyor .

Dönüşler dışarı ssh-keygenaltında benim özel anahtarı koymak C:\users\<MyUserName>\ve bu ssh -Tve ssh -vorada da bekliyoruz.

Her şey iyi çalışıyor gibi görünüyor Yani, bu hariç git clone, git pushdiğerleri bir anahtar aramak U:\. Başarısız olan, bu yüzden yukarıda belirtilen hatayı alıyorum.

O öğrenmek için bir saatimi aldı ama sonunda çözüm basitti: Ben her şeyi kopyalanan C:\Users\<MyUserName>\.sshiçinU:\.ssh


1

Ben böyle çözdüm ..

Bu komutu kullanarak Windows için bir anahtar oluşturdu:

ssh-keygen -t rsa -C "your.email@example.com" -b 4096

ancak sorun şu ki, bu komutu çalıştırdıktan sonra bir satır attı: "Anahtarın kaydedileceği dosyayı girin (/c/Users/xxx/.ssh/id_rsa):" Burada sadece dosya adı verdim çünkü anahtarım belirtilen konumda değil, pwd'mde kaydediliyordu. "Git clone" yaptığımda, anahtarın "/c/Users/xxx/.ssh/id_rsa" konumunda olduğunu varsayıyordu ama bulunamadı, dolayısıyla hata veriyordu.

Anahtar oluşturma sırasında "dosya1" ve "dosya1.pub" olarak 2 dosya oluşturulmuştur. Bu iki dosyayı da şu şekilde yeniden adlandırdım:

file1 -> id_rsa 

ve

file1.pub -> id_rsa.pub

ve her ikisine de yerleştirilmiş "/c/Users/xxx/.ssh/"


1

Terminale gidin ve ssh anahtarını yeniden oluşturun. Tür ssh-keygen. Nereye kaydetmek istediğini soracak, yolu yaz.

Ardından genel anahtarı gitlabs platformuna kopyalayın. Genellikle ssh-rsa ile başlar.


1

Sorun bana açık olduğu idi UsePAMgelen yesetmek noaltında SSH yapılandırma dosyasında /etc/ssh/sshd_config. İle UsePAM yesher şey mükemmel çalışıyor.


1

Çözümü gitlab yardımında buldum .

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@example.com"
 2.1 Or, if you want to use RSA: ssh-keygen -o -t rsa -b 4096 -C "email@example.com"
 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

Umarım bazılarınıza yardımcı olabilir!


1

Ubuntu'da gitlab hesabına SSH anahtarı nasıl eklenir?

  1. Proje dizininizde terminali açın.
  2. 'Ssh-keygen -o -t rsa -b 4096 -C "gitlab e-postanız" yazın ve enter tuşuna basın
  3. 'Vim /home/mnbtech/.ssh/id_rsa.pub' yazın ve enter tuşuna basın (veya kaydettiğiniz yerden 'id_rsa.pub'ınızı manuel olarak açın)
  4. SSH anahtarı görünecektir. Bunları kopyalayın ve

  5. Gitlab hesabınıza gidin.

  6. Profil resmine tıklayın ve ayarı tıklayın
  7. Sol tarafta SSH Anahtarlarını seçin
  8. Sonra bu anahtarı yapıştırın Anahtar ekle'ye tıklayın

SSH-Key eklenecek!

(Önizlemeler Oluştur SSH Anahtarınız varsa ve İzniniz reddedildiyse (genel anahtar). Önizlemelerinizi Silip yeni bir tane oluşturup terminalinize git user.name ve e-posta eklersiniz)


Bu cevapta önceki talimatlardan farklı olan nedir?
RalfFriedl

1

Ben çözüldü git@gitlab.com: Permission denied (publickey)aşağıdaki talimatları kullanarak sorunu

  1. ÇALIŞTIRMAK cat ~/.ssh/id_rsa.pub
  2. Kopya id_rsa.pub> SSH Anahtarları - senin getlab `ayarlanması için (genel anahtar)
  3. ÇALIŞTIRMAK cat ~/.ssh/id_rsa
  4. Kopya id_rsaCode_repo-> git_auth-> id_rsa `üzere (özel anahtar)

NOT:root DockerFile'ınızda veya başka herhangi bir yerde kullanıcı kullanıyorsanız makine kullanıcısına iyi bakın, ardından sudo suroot kullanıcısı genel ve özel anahtarlarını almak için yukarıdaki komutları çalıştırmadan önce kullanın.


1

Bizim durumumuzda, kullanıcı / istemci tarafında değil, Gitlab sunucu tarafında bir sorun vardı.

CentOS 7.1'de yerel bir Gitlab CE 12.9 örneği çalıştırıyoruz.

Sunucuda .ssh / yetkili_keys dosyasının doğru şekilde güncellenmediğini öğrendik. Kullanıcılar (Gitlab kılavuz aşağıdaki) kendi SSH anahtarlarını oluşturmak ve Gitlab sunucuya eklemek, ancak sunucu güncelleme yok authorized_keys hep reddedildi hatalara neden olacaktır, bu yüzden.

Geçici bir çözüm, yetkili_keys dosyasını çalıştırarak yeniden oluşturmaktı :

$ sudo gitlab-rake gitlab:shell:setup

Bu , tırmık görevini çalıştırmadan önce anahtarlarını ekleyen herkes için işe yarar. Anahtarlarını ekleyecek olan sonraki kullanıcılar için, birisinin yeniden tırmık görevlerini manuel olarak çalıştırması gerekir.

Daha kalıcı bir çözüm oldu değil kullanmak authorized_keys dosyası ve yerine kullanmak Gitlab veritabanı üzerinde endeksli arama :

GitLab Shell, SSH kullanıcılarını GitLab veritabanına hızlı, dizinlenmiş bir arama yoluyla yetkilendirmek için bir yol sağlar. GitLab Shell, kullanıcının GitLab'a erişme yetkisinin olup olmadığını kontrol etmek için SSH anahtarının parmak izini kullanır.

Aşağıdakileri sshd_configdosyanıza ekleyin . Bu genellikle adresinde bulunur /etc/ssh/sshd_config, ancak /assets/sshd_configOmnibus Docker kullanıyorsanız:

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 

OpenSSH'yi yeniden yükleyin:

# Debian or Ubuntu installations   
sudo service ssh reload

# CentOS installations   
sudo service sshd reload 

Kullanıcı arayüzünde kullanıcının SSH anahtarını kaldırarak, yeni bir tane ekleyerek ve bir depo çekmeye çalışarak SSH'nin çalıştığını doğrulayın.

Varsayılan (bizim yüklemesinde de varsayılan) olarak, authorized_keys dosyasına yazma kontrol edildi Yönetici Alanı> Performans Optimizasyon ayarları. Biz de bunun işaretini kaldırdık ve bunun yerine Gitlab veritabanını kullandık.

görüntü açıklamasını buraya girin

İndekslenmiş aramayı ayarladıktan ve yetkili anahtarlara yaz dosyasının işaretini kaldırdıktan sonra , SSH erişimi tamam oldu.


1

Windows 10 kullanan ve onun için başka hiçbir şey çalışmayan herkes için:

Benim durumumda, depoyu ssh yerine https ile klonlamak zorunda kaldım ve kimlik bilgilerimi isteyen bir pencere açıldı. Bundan sonra her şey yolunda gidiyor.


1

Biliyorum, bunu çok geç cevaplıyorum ve gerçekten cevap vermek istersem StackOverflow bile onayladı. Cevap veriyorum çünkü kimse asıl sorunu tanımlamadı, bu yüzden aynı şeyi paylaşmak istemedi.

Temeller

İlk önce, burada uzaktan kumandanın ne olduğunu anlayın. Uzak GitLab ve sisteminiz yereldir, bu nedenle uzaktan kumanda hakkında konuştuğumuzda origin, git remote -vçıktınızda ayarlanmış olan URL uzak URL'nizdir.

Protokoller

Temel olarak, Git clone / push / pull büyük ölçüde iki farklı protokolde çalışır (başka protokoller de vardır) -

  1. HTTP protokolü
  2. SSH protokolü

Bir depoyu klonladığınızda (veya uzak URL'yi değiştirdiğinizde) ve https://gitlab.com/wizpanda/backend-app.git gibi HTTPs URL'sini kullandığınızda, ilk protokolü yani HTTP protokolünü kullanır.

Depoyu klonlarsanız (veya uzak URL'yi değiştirirseniz) ve URL'yi o git@gitlab.com:wizpanda/backend-app.gitzamanki gibi kullanırsanız, SSH protokolünü kullanır.

HTTP Protokolü

Bu protokolde, her uzaktan işlem, yani klonlama, itme ve çekme, basit kimlik doğrulamasını, yani uzaktan kumandanızın kullanıcı adı ve şifresini kullanır (bu durumda GitLab), bu, her işlem için, kullanışsız olabilecek kullanıcı adınızı ve şifrenizi yazmanız gerektiği anlamına gelir. .

Dolayısıyla, itme / çekme / klonlama yaptığınızda GitLab / GitHub, kullanıcı adınız ve şifrenizle kimliğinizi doğrular ve işlemi yapmanıza olanak tanır.

Bunu denemek istiyorsanız, komutu çalıştırarak HTTP URL'ye geçebilirsiniz git remote set-url origin <http-git-url>.

Bu durumu önlemek için SSH protokolünü kullanabilirsiniz.

SSH Protokolü

Basit bir SSH bağlantısı, genel-özel anahtar çiftlerinde çalışır. Yani sizin durumunuzda GitLab, iletişim için SSH URL'si kullandığınız için kimliğinizi doğrulayamaz. Şimdi GitLab sizi bir şekilde tanımalı. Bunun için bir genel-özel anahtar çifti oluşturmanız ve genel anahtarı GitLab'a vermeniz gerekir.

Artık GitLab ile itme / çekme / klonladığınızda, GIT (dahili olarak SSH) özel anahtarınızı GitLab'a sunacak ve kimliğinizi onaylayacak ve ardından GitLab işlemi gerçekleştirmenize izin verecektir.

O yüzden Muhammed tarafından zaten verilen adımları tekrar etmeyeceğim, teorik olarak tekrarlayacağım.

  1. "Ssh-keygen -t rsa -b 2048 -C" Ortak SSH Anahtarım "anahtar çifti oluşturun
  2. Oluşturulan anahtar çifti varsayılan olarak olacaktır ~/.sshadında id_rsa.pub(genel anahtar) & id_rsa(özel anahtar).
  3. Genel anahtarı GitLab hesabınızda depolayacaksınız (aynı anahtar birden çok veya herhangi bir sunucuda / hesapta kullanılabilir).
  4. Klonladığınızda / ittiğinizde / çektiğinizde, GIT özel anahtarınızı sunar.
  5. GitLab, özel anahtarı genel anahtarınızla eşleştirir ve gerçekleştirmenize izin verir.

İpuçları

Her zaman en az 2048 baytlık güçlü bir rsa anahtarı oluşturmalısınız. Yani komut olabilir ssh-keygen -t rsa -b 2048.

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

Genel düşünce

Her iki yaklaşımın da artıları ve eksileri var. Yukarıdaki metni yazdıktan sonra, bununla ilgili daha fazla araştırma yapmaya gittim çünkü bununla ilgili hiçbir şey okumadım.

Bu resmi belgeyi buldum https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols, bu konuda daha fazlasını anlatıyor. Buradaki amacım, hatayı okuyarak ve hatayı düşünerek, kendi teorinizi veya anlayışınızı oluşturabilir ve ardından sorunu çözmek için bazı Google sonuçlarıyla eşleştirebilirsiniz :)



0

Ubuntu 18.04 kullanıyorum ve bu aslında yerel makinemde izin sorunuydu. .Git klasörüme okuma / yazma izni ayarladığımda sorun çözüldü.


0

Ben de aynı sorunu yaşadım ve cevabı denedikten sonra @ Khan önerdi. Ancak, sadece .git / config dosyasındaki kaynak url'yi https adresine değiştirerek çalıştırabildim: https://gitlab.com/mygitlabusername/mygitproject.git

Ssh üzerinden erişim reddedildiğinden, https kullanmanın bir sorun olmayacağını anladım. Ancak, depodaki her basış için kullanıcı adınızı ve şifrenizi soracaktır.


0

Lütfen git config credential.helper storesiteniz TLS / SSL kullanıyorsa kullanın . Umarım bu işe yarar


0

Bir git deposuna erişmenin iki yolu arasında, yani SSH veya HTTPS kullanarak farklılıklar var gibi görünüyor. Benim için hatayla karşılaştım çünkü yerel depomu SSH kullanarak zorlamaya çalışıyordum.

Sorun, projenizin açılış sayfasındaki klon düğmesine tıklanarak ve HTTPS bağlantısı kopyalanıp, "git @ gitlab ..." biçiminde görünen SSH bağlantısı ile değiştirilerek basitçe çözülebilir.


Bu sorunun cevabı değil.
RalfFriedl

0

İzni değiştir :: chmod 400 ~ / .ssh / id_rsa Bana yardımcı oldu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.