2015-11-23 17 views
5

Gitlab.com ha un'opzione per il mirroring di altri repository sul proprio sito. (Progetto -> Impostazione progetto -> Repository mirror)È possibile eseguire il mirroring di un repository privato su gitlab.com utilizzando il protocollo SSH?

Ma quando ho provato a farlo utilizzando il protocollo ssh, l'autorizzazione non è riuscita perché il repository che volevo clonare non riconosceva la chiave pubblica di Gitlab.com .

La pagina ha dichiarato:

Se il repository SSH non è accessibile al pubblico, aggiungere la chiave SSH pubblica del server GitLab al repository remoto.

Il problema è che non sono riuscito a trovare un'opzione per aggiungere una chiave privata a Gitlab.com o scaricare una chiave pubblica da Gitlab.com.

Questo è possibile solo se si è un proprio server GitLab o ho trascurato qualcosa?

risposta

1

Non sono sicuro che funzionerà, ma penso che valga la pena provare. Per recuperare la chiave pubblica di gitlab.com, ho eseguito il seguente comando:

nmap gitlab.com --script ssh-hostkey --script-args ssh_hostkey=all 

I seguenti 3 chiavi pubbliche possono essere trovati in uscita:

ssh-dss AAAAB3NzaC1kc3MAAACBAMPKInNPflcRle9F5Qt2j9aI0EZuWQzdXTbYvsl+ChaacqCOWRMiOmXHXqetFz6jD/6Fcqg20ZATxqSskQBaRn97O/mbH+GQk4d3zw9WAEURicE8rKJop3qGtdfFxLzrTuPAkKRDMmutT3hwZIOO8CFWOl1BiuUYTncJTeonrfAAAAFQCujauoy3Yy+ul72b/WsTECUPj9yQAAAIBIV2yyF7RZf7IYS8tsWcKP7Y5Bv9eFdbvbtsaxcFCHcmHIGoJQrIdPoueoOb5EUTYz0NgYKsKaZzDZkgFk28GsmLxKvhnPjaw0lJVSKRchEE5xVlamOlabiRMjQ7X/bAdejkBJe96AjZZL3UO4acpwfy3Tnnap0w6YCDeaxoyHpwAAAIAU+dyNaL3Hy15VIV32QwWMekvxeptUY/W03LNcgZZDoin87TE9xuQhM0qF3pi2i2a2ExuslgdttmYWvrbEz8eW+RFgvT5pKwWpalKWetHvtN3oYZP37ZIO1Y3Hd5A4YVcpYp1ccRayveLlCRwxb4HdGXT2OmYU+lmvimIR8zQ6A== 

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9 

_ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY= 

l'aggiunta di questi al server repository potrebbe consentirgli di autenticare correttamente la connessione.

+2

L'ho provato (ha aggiunto la chiave RSA), ma non ha funzionato. – Tijmen

7

Gitlab mirroring feature è implemented recently on Nov 2015 ma purtroppo è disponibile solo per Gitlab Enterprise Edition:

Repository Mirroring (EE) Se si vuole mantenere uno specchio di un repository in un'istanza GitLab, è ora possibile lasciare GitLab gestisce il mirroring automaticamente in GitLab Enterprise Edition.

Controllare the features comparison tra edizioni della Comunità ed Enterprise O si richiede EE o utilizzare gitlab-mirrors script:

Il progetto gitlab-specchi è stato progettato per riempire una caratteristica che attualmente manca GitLab: la capacità per replicare i repository remoti. gitlab-mirrors crea copie di sola lettura di archivi remoti in gitlab. Fornisce un'interfaccia di gestione CLI per la gestione dei repository mirroring (ad esempio, aggiungi, elimina, aggiorna) in modo che un amministratore possa aggiornare regolarmente tutti i mirror con crontab tramite . Funziona interagendo con con l'API GitLab usando python-gitlab3. Inoltre, controlla questo fantastico modulo fantoccio per l'installazione e la configurazione di gitlab-mirrors.

+0

Sono consapevole che l'edizione della comunità non ha il mirroring automatico. [Gitlab.com] (https://about.gitlab.com/gitlab-com/) esegue comunque l'Enterprise Edition. [Fonte] (https://about.gitlab.com/gitlab-com/) – Tijmen

+0

@Tijmen quali errori ti mostrano? Ho provato https, ssh con github ha detto github non risolto –

+0

L'errore è: il repository non è stato aggiornato un giorno fa. conq: accesso al repository negato. la chiave di implementazione non è associata al repository richiesto. irreversibile: impossibile leggere dal repository remoto. Assicurati di disporre dei diritti di accesso corretti e il repository esiste. – Tijmen

0

Secondo this comment, la chiave è nella /var/opt/gitlab/.ssh/id_rsa e /var/opt/gitlab/.ssh/id_rsa.pub per impostazione predefinita. Se i tasti non esistono, è possibile crearli manualmente con sudo -u git -H ssh-keygen e schiacciare il tasto Invio tramite i prompt.

Ho appena provato questo sulla mia installazione di gitlab-ee 8.7.2 e sembra funzionare.

+3

Che sfortunatamente conta solo se stai eseguendo la tua installazione di gitlab-ee. – BM5k

Problemi correlati