2013-07-19 17 views
14

Sono nuovo di gitlab e CI quindi ho avuto un sacco di domande ma alcuni di loro sono stati risolti via google, quindi git mans, ma non l'ultimo ...Impossibile clonare il repository di gitlab tramite ssh, tramite http - OK

non posso clonare repo via ssh = (

se cerco di clonare repo via http:

[email protected]:/var/www$ git clone http://gitlab.vbox/root/virtualboxgitlab.git 
Cloning into 'virtualboxgitlab'... 
Username for 'http://gitlab.vbox': root 
Password for 'http://[email protected]': 
warning: You appear to have cloned an empty repository. 

questo è OK

Ma via ssh ...

01.235.164,106 mila
[email protected]:/var/www$ git clone [email protected]:root/virtualboxgitlab.git 
Cloning into virtualbox 'gitlab' 
[email protected]'s password:<br /> 

lo richiama la password di git che non ho creare durante l'installazione (come ho avuto nell'uomo)

rsa keys 

ho aggiunto la mia chiave via web di gitlab (per account di root, in realtà non mi creo qualsiasi altro account)

E anche la chiave ho aggiunto da "gatto my_rsa.pub >> authorized_keys"

ho letto qualche post qui su problemi ssh, ma la maggior parte hanno gitolite installato

Ho installato gitlab 5.3 senza gitolite (come nel manuale), potrebbe essere necessario?

Inoltre ho provato ssh -vT [email protected] e uscite:

.... 
debug1: Server host key: ECDSA 48:83:ba:b3:37:72:a0:dc:ca:2c:a3:b8:78:a1:c4:ad 
debug1: Host 'gitlab.vbox' is known and matches the ECDSA host key. 
debug1: Found key in /home/lesha/.ssh/known_hosts:2 
debug1: ssh_ecdsa_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,password 
debug1: Next authentication method: publickey 
debug1: Offering RSA public key: /home/lesha/.ssh/id_rsa 
debug1: Authentications that can continue: publickey,password 
debug1: Trying private key: /home/lesha/.ssh/id_dsa 
debug1: Trying private key: /home/lesha/.ssh/id_ecdsa 
debug1: Next authentication method: password 
[email protected]'s password: 


[email protected]:/home/git/.ssh# ls -l 
итого 4 
-rw------- 1 git git 922 Июл 18 21:05 authorized_keys 

environmetnt: debian 7, nginx + passeggero, gitlab 5.3, rubino 2.0.0p247, senza gitolite, puma contro unicorno

favore aiuto! =) Io sono bloccato ...


alcune aggiunte (20.07.2013):

Ho creato git utente come nel manuale di installazione

sudo adduser --disabled-login --gecos 'GitLab' git 

Il giorno dopo, ho cercato di uccidere git e aggiungere nuovamente semplicemente useradd comando, dopo che le chiavi sono al lavoro, ma non sono ancora contento perché:

[email protected]:/var/www$ git clone [email protected]:root/virtualboxgitlab.git 
Cloning into 'virtualboxgitlab'... 
fatal: 'root/virtualboxgitlab.git' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly 

e http funziona così come precedente:

[email protected]:/var/www$ git clone http://gitlab.vbox/root/virtualboxgitlab.git 
Cloning into 'virtualboxgitlab'... 
Username for 'http://gitlab.vbox': root 
Password for 'http://[email protected]': 
warning: You appear to have cloned an empty repository. 

così, ora non ho problemi di auth ma averne un altro.

Come risolvere il problema da lì?

+0

Ho modificato la mia risposta in risposta alle modifiche della tua domanda :) – VonC

risposta

5

GitLab 5.x doesn't use gitolite anymore, ma gitlab-shell.

Vorrei consigliare di creare un account dedicato, come raccomandato nello installation process.

ssh [email protected] 

che i comandi ssh significa che si sta chiedendo una shell sicura su 'gitlab.vbox' come utente 'git'. Se quell'utente non esiste ... non funzionerà.

Non c'è bisogno di cercare di clonare pronti contro termine è il test non viene eseguito correttamente:

sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production 

Il OP rapporti ssh funziona meglio dopo aver creato l'utente git e aggiungendo le chiavi, ma:

  • assicuratevi innanzitutto di creare le chiavi su un 'account' cliente ', non su ~git/.ssh/id_rsa: si sta tentando di aprire una sessione come git da un account cliente. git è l'account in cui è installato gitlab.
  • Dovresti quindi registrare la tua chiave pubblica nella pagina ssh dell'account utente che dichiari attraverso la gui gitlab. Si dovrebbe non "useradd" un ssh alla radice.

Se vedete questo:

[email protected]:/var/www$ git clone [email protected]:root/virtualboxgitlab.git 
Cloning into 'virtualboxgitlab'... 
fatal: 'root/virtualboxgitlab.git' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly 

Ciò significa anche che non dovrebbe specificare il percorso del pronti contro termine (root/):

git clone [email protected]:virtualboxgitlab.git 

E 'compito gitlab sapere dove virtualboxgitlab .git è archiviato (come specificato nel file di configurazione gitlab.yml)

Fondamentalmente, dimenticare root e fare l'installazione completa di gitlab come previsto: in un account 'git'.

L'OP ha reso il lavoro, commentando che:

"root" è namespace amministratori, gitlab crea questo URL in modo automatico e senza di essa clone non funziona, ora tutto cloni e comincio installare gitlab CI ,

Il PO ha dovuto:

aggiungere il mio utente al gruppo sudo, ha fatto installare pulita, errore

ha ricevuto
/usr/local/lib/ruby/2.0.0/net/http.rb:878:in initialize': getaddrinfo: 
    Name or service not known (SocketError) 

che non può risolvere il nome host, ha aggiunto gitlab.vbox-/etc/hosts

+0

ho folowed guida all'installazione passo-passo senza errori , con solo: 'Git configurato per git user? ... no', il mio utente git esiste e 'git: x: 1001: 1001: GitLab ,,,:/home/git:/bin/bash' – alexZT

+0

aggiunto il mio utente al gruppo sudo, reso pulito installa, errore ricevuto' /usr/local/lib/ruby/2.0.0/net/http.rb:878:in 'initialize ': getaddrinfo: Nome o servizio non noto (SocketError)' che non può risolvere il nome host, aggiunto gitlab.vbox a '/etc/hosts' adn ora sono quasi felice!=) una parola sul percorso di repo, hai detto che non dovrei specificare root/in path, io faccio e dovrei, "root" è lo spazio dei nomi degli amministratori, gitlab crea questo URL automaticamente e senza di esso il clone non funziona, ora tutto clona e comincio a installare gitlab CI, molte grazie – alexZT

Problemi correlati