2012-03-13 29 views
5

Si noti che questo è l'articolo originale ho seguito insieme a:
http://www.markdotto.com/2011/11/02/how-to-deploy-sites-via-github/questione della clonazione GitHub repo privato sul server remoto

Per darvi un po 'di background: Abbiamo un set-up repo privato sotto un account di organizzazione. Abbiamo tre sviluppatori (me compreso) che hanno i nostri account con GitHub e hanno diritti di amministratore per il repository privato.

Mentre lavoriamo al progetto, cloniamo il repository e quindi creiamo un ramo "dev". Ognuno di noi lavora dal proprio ramo di sviluppo e spinge le modifiche al ramo "dev" su GitHub.

Vogliamo ottenere questo ramo dev sul nostro server remoto in modo che possiamo testare il codice combinato funziona prima di unirlo nel nostro ramo principale (che dovrebbe essere pulito/sempre distribuibile).

Da qui stiamo seguendo i passi di articoli di cui sopra, che è quello di collegarsi al nostro server via SSH, andare nella directory rilevante nel quale il nostro sito web è ospitato e eseguire il seguente comando ...

git clone [email protected]:ORGANISATION/REPO.git dev

il primo problema che abbiamo avuto è stato il nostro server ha restituito il messaggio ...

Cloning into dev... 
ssh: connect to host github.com port 22: Connection refused 
fatal: The remote end hung up unexpectedly 

... dove avrei averlo aspettato a chiedere a noi una password?

Così, invece abbiamo provato l'URL HTTP ...

git clone https://[email protected]/ORGANISATION/REPO.git dev

... si noterà l'URL HTTP utilizza la mia NOME UTENTE ora quando la clonazione. Inserisco la mia password e visualizza Cloning into dev... ma poi si visualizza il seguente errore ...

error: SSL certificate problem, verify that the CA cert is OK. Details: 
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://[email protected]/StormCreative/MoneyRepublic.com.git/info/refs 
fatal: HTTP request failed 

... Non capisco l'errore.

Quindi, come possiamo clonare questo repository privato sul nostro server?

Qualsiasi aiuto apprezzato!

Cordiali saluti, Mark

+0

possibile duplicato di [accesso github HTTPS] (http://stackoverflow.com/questions/3777075/https-github-access) – ralphtheninja

risposta

10

Il primo problema si verifica perché non si dispone della chiave rsa locale collegato al tuo account su GitHub (e sì, si collega la chiave rsa al tuo account, e l'organizzazione è collegato al tuo account pure).

Nella macchina locale (o server remoto) in cui si sta tentando di clonare il repository, è necessario generare una chiave RSA:

ssh-keygen -t rsa 

Quando si sta generando la chiave, si è scelto una password e un posiziona per memorizzare il file id_rsa.pub, che in realtà contiene la chiave.

Su GitHub, è necessario aggiungere questa chiave, il contenuto esatto di id_rsa.pub, alle proprie chiavi ssh sul pannello di amministrazione dell'account.

+0

grazie per la risposta. Ho provato a generare un SSH usando il comando 'ssh-keygen -t rsa -C" mio-github-email-account "' e dopo aver chiesto "Inserire il file in cui salvare la chiave (/root/.ssh/id_rsa): "Ho inserito" github_mark "e ho inserito una passphrase (due volte). Ma non riesco a trovare i dati della chiave SSH che devo copiare per poterli aggiungere alla pagina https://github.com/settings/profile#ssh_bucket di GitHub? – Integralist

+0

Suppongo anche che '/ root/.ssh/id_rsa' possa contenere più chiavi, quindi perché sono stato in grado di inserire un nome di' github_mark' prima di inserire la passphrase. – Integralist

+0

Ecco perché raccomandano di non scrivere nulla nella parte "Immettere il file in cui salvare la chiave (/root/.ssh/id_rsa)". Basta premere invio, scegliere la password e la chiave pubblica sarà nel percorso esatto (/root/.ssh/id_rsa). –

0

Non sono sicuro di poterti aiutare con l'errore che mi sembra un problema SSL. Ma posso suggerirti un altro approccio.Distribuisco il mio blog sul mio server in questo modo:

  • Ho creato un repository git sul server chiamato deploy.
  • Ho aggiunto questo repo di distribuzione come remoto al mio repository locale.
  • Spingo le modifiche a questo repo quando voglio distribuire.
  • All'interno del mio repository di distribuzione ho impostato un hook di post-ricezione in modo che ogni volta che vengono apportate modifiche clone automaticamente il repository sul server all'interno della directory host di Apache che serve l'ultima versione del mio sito web.

Posso fornirvi l'essenza del mio gancio di post-ricezione se ne avete bisogno. Se il tuo sito web è in rotaie puoi usare Capistrano per l'implementazione.

edit: qui è il mio post-ricezione gancio

GIT_REPO=$HOME/aliirz.git 
PUBLIC_WWW=/var/www/myrepo 

git clone $GIT_REPO $PUBLIC_WWW 
exit 

saluti

Edit: La risposta di drgomesp sopra è del tutto la soluzione. Mi è saltato in mente che hai bisogno che le tue chiavi SSH siano collegate a Github.

+0

grazie per il feedback - sto solo aspettando un feedback da @drgomesp quindi sì, mi piacerebbe vedere che anche il gancio post-ricezione potesse essere d'aiuto. – Integralist

+0

Sì, per favore, se potessi inviare il tuo hook di post-ricezione in quanto sembra che la soluzione di drgomesp non funzioni al momento (guarda la nostra discussione) – Integralist

Problemi correlati