Gitlab SSH Anahtarları ile çalışmıyor


11

Gitlab ile ilgili sorunlar yaşıyorum. Gitlab'ı kurmak ve yapılandırmak için aşağıdaki kılavuzu kullandım https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md . Kurulum iyi gidiyor gibiydi. Web uygulaması iyi çalışıyor gibi görünüyor. Ancak klonlayamıyorum, çekemiyorum, itemiyorum, temelde Gitlab'ı kullanamıyorum. HTTP ile 403 hata gördüm ve SSH üzerinden klonlamaya çalışırken izin verilmedi.

Özel anahtarlarımın hem Windows hem de OS X'te doğru şekilde ayarlandığından emin oldum. Sunucudaki ortak anahtarları görebiliyorum. ~ / .Ssh.config dosyasındaki yapılandırma dosyama aşağıdakileri ekledim

Host {hostname}
    User git
    Hostname {hostname}
    PreferredAuthentications publickey
    IdentityFile C:/Users/{username}/.ssh/id_rsa

/ Var / log / secure'da gördüğüm şey bu

Jan 14 17:31:48 dev_version_control sshd[3696]: Connection closed by 192.168.17.113
Jan 14 17:32:18 dev_version_control sshd[3700]: Connection closed by 192.168.17.113

/var/log/messageBen budala ya ssh kullanarak çalıştığında rol vermedi

Buradan nereye gideceğimi bilmiyorum. Herhangi bir öneri?

Git kullanıcı adını kullanarak SSH ile ne demek istediğini bilmiyorum. Kullandığım kılavuz, git kullanıcısı için bir şifre oluşturmadı ve kullanıcının oturum açmak için kullanılamayacağını belirtti.


Git sunucusuna 'git' kullanıcısı olarak SSH gönderebiliyor musunuz? Bağlantının neden kapatıldığına dair daha fazla çıktı almak için '-vvv' parametresini eklemeyi deneyebilir misiniz? Ayrıca, içinde herhangi bir hata olup olmadığını görmek için / var / log / secure ve / var / log / messages dosyalarını kontrol etmek de faydalı olabilir.
jaseeey

Ortak anahtarlar istemcide ayarlanmamıştır; özel anahtarlarınızın istemcinizde olduğundan emin olmanız gerekir . Ortak anahtarlar sunucuya gider.
EEAA

Sorum güncellendi. Umarım bu yardımcı olur
greyfox

Yanıtlar:


10

Özel anahtarınızı istemcinize yüklemiş olmanız koşuluyla, 'git' kullanıcı ana dizini ve .ssh dizininde bir izin sorunu olabileceği anlaşılıyor.

Lütfen / home / git dizininizi 0711 maskesine değiştirmeyi deneyin:

chmod 0711 /home/git

/Home/git/.ssh dizininin 0700 maskesine sahip olduğundan emin olun:

chmod 0700 /home/git/.ssh

/Home/git/.ssh/authorized_keys dosyasının 0600 maskesine sahip olduğundan emin olun:

chmod 0600 /home/git/.ssh/authorized_keys

Öğreticide farklıysa, / home / git yerine 'git' kullanıcısı için ana dizininiz olsun. İzin yoksa, lütfen yorum yapalım, sorun başka ne olabilir?


Sorun bu olabilirdi. Mac'imde git clone git @ {hostname}: {workspace} / {repository} kullanarak klonlayabildiğimi biliyorum. Ne yazık ki Windows makinemi işte bıraktım, bu yüzden yarın denemem gerekecek. Ortak / özel anahtar kimlik doğrulaması Gitlab ile HTTP üzerinden çalışmaz mı? Github'un bu şekilde çalıştığı izlenimindeydim ama bu konuda yanılmış olabilirim.
greyfox

Genel / özel anahtar kimlik doğrulaması yalnızca SSH üzerinden çalışır. HTTP kullanıyorsanız, herhangi bir şey yapmak için kullanıcı adınızı ve şifrenizi kullanmanız gerekir. Git'in v1.8 gibi yeni bir sürümünü kullanıyorsanız, sizden bir kullanıcı adı ve şifre girmeniz gerekir. https://username:password@git.server.com/repo.git
Git'in

Ahhhh şimdi çok daha mantıklı. Windows için GitHub uygulaması kimlik bilgilerini depolar mı? Yardımın için çok teşekkürler!
greyfox

GitHub Windows uygulamasını fazla kullanmadım, ancak bellekten açtığınızda bir giriş yapılması gerektiğini düşünüyorum, bu yüzden size her zaman girme ağrısını kurtarmak için erişim kimlik bilgilerini sakladığını söyleyebilirim.
jaseeey

1

Genel anahtarınız için (web yüzü üzerinden içe aktarılan) yalnızca bir kaydınız olduğundan /home/git/.ssh/authorized_keysve bu anahtarın gitlab önek ve başlığı olduğundan emin olun. Başka bir deyişle, gitlab'ı yüklemeden önce aynı anahtarı manuel olarak eklediyseniz kaldırın.


Orada birden fazla anahtarınız olabilir ve özel anahtarınız eşleşebiliyorsa giriş yapabilirsiniz ...
jaseeey

@Jason, daha kesin bir şekilde açıklamak için düzenledim
sinm

Teşekkürler, bu benim içindi. Bir anahtar eklemek için Gitlab'ı kullanmadan önce ssh anahtarımı elle koydum ve yinelenen anahtarlar sorunlara neden oldu.
6ft Dan

1

Ayrıca kullanıcının gitlab'ı klonlamak / çekmek / itmek için uygun izne sahip olup olmadığını kontrol etmenizi tavsiye ederim. Sorunun nedeni gitlab kullanıcı yeterli izinlere sahip değilken, ssh / https yapılandırmalarına bakarak çok fazla zaman harcadım ...


1

Benim durumumda gitlab'ı FreeBSD paketleri üzerinden kurdum. Gitlab SSH çalışmadı. Bunun nedeni git için yanlış bir giriş dizini idi: (vipw)

git:*:211:211::0:0:gitosis user:/usr/local/git:/bin/sh

Bunu şu şekilde değiştirdim:

git:*:211:211::0:0:gitosis user:/home/git:/bin/sh

1

Ana bilgisayar adında '-' varsa bu olabilir. ( RFC 952'ye göre bu yasal olsa da .)

ssh, adında '-' olan herhangi bir ana bilgisayar için bir parola istiyor. ~ / .Ssh / config için bir takma ad eklemek (ve bu takma adı git uzak url'lerde kullanmak) sorunu çözdüğünden, bu yalnızca ssh yapılandırma dosyası ayrıştırmasıyla ilgili bir sorun gibi görünüyor.

Başka bir deyişle C'nize aşağıdakine benzer bir şey koymayı deneyin: / Users / {username} /. Ssh / config

Host {a}
    User git
    Hostname {a-b.domain}
    IdentityFile C:/Users/{username}/.ssh/id_rsa

ve formun uzaktan kumandasına sahip olduğunuz yer

origin  git@a-b.domain:repo-name.git

kaldırın ve ardından formu kullanarak yeniden ekleyin

origin  git@a:repo-name.git

1

Anahtarı geçmek için ortam değişkenleri kullanıyorsanız, bunları base64 kodlamanız gerekir, aksi takdirde parolanızı soran bir hatayla başarısız olurlar. Bu, anahtarın bozuk olduğu anlamına gelir. Eğer görürsen:

$ ssh-add <(echo "$SSH_PRIVATE_KEY")
Enter passphrase for /dev/fd/63: ERROR: Job failed: exit code 1

Daha sonra base64, SSH_PRIVATE_KEY değişkenini kodlar. OS X kullanıyorsanız,

cat ~/.ssh/ssh_key_for_project | base64 | pbcopy

kodlar ve panonuza kopyalar. Şimdi .gitlab-ci.yml komut satırı satırını

- ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 -d)


0

Benim sorunum id_rsa tarafından oluşturulan ve puttygen tarafından kaydedilen özel anahtarlar dosya ubuntu makineden oluşturulan biçiminden farklı bir biçim oldu. Ubuntu makinesinden bir çift anahtar oluşturduktan sonra, bu dosyaları% UserProfile% .ssh klasörü altında Windows makinesine geri kopyalayın ve sonra oluşturulan yeni ortak anahtarı Gitlab'e ekleyin. Benim için daha fazla izin verilmedi

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.