Qui è un po 'di una lista di controllo:
- ssh abilitato sul server che si sta tentando di connettersi?
- GIT è installato sul server?
- Avete un set di repository Git sul server?
- Il repository ha le autorizzazioni corrette e ha sharedrepository abilitato nella configurazione sul server?
Avete le chiavi SSH nel posto giusto per GIT?
Suggerimenti:
1: Dal momento che è possibile connettersi utilizzando stucco, si presenta come ssh è configurato ok.
2: utilizzare lo stucco e collegarsi al server. Digitare git --version
Si ottiene una risposta ragionevole? In caso contrario, sarà necessario installarlo sul server.
3: provare a configurare un nuovo repository sul server. Supponendo che un server in stile * nix utilizzi lo stucco e si connetta al server e crei un nuovo repository usando i seguenti comandi, assumendo che tu abbia una directory/home/codice_destinazione. La linea di eco crea solo un file con un po 'di testo, quindi abbiamo qualcosa da cui iniziare.
cd /home/source_code
mkdir test_repo
cd /home/source_code/test_repo
echo "first file" > t.txt
git init
git add .
git commit -m "Initial Import"
Quindi ora abbiamo un repository con un file t.txt al suo interno. Di regola non si dovrebbe mai inserire in un repository che contiene modifiche alla copia di lavoro. Lo scopo di avere un repository sul server è tale che le persone possano inserirvi tutto il tempo. Creiamo un clone "nudo" che è solo il database git, in questo modo non è possibile alcuna modifica delle copie di lavoro. È questo clone "nudo" che useremo come repository git centrale.
cd /home/source_code
git clone --bare test_repo/ test_repo.git
Ora è possibile eliminare il repository temporaneo che abbiamo impostato.
cd /home/source_code/
rm -rf test_repo
Sul computer locale tentare la clonazione di nuovo
git clone ssh://[email protected]:port/home/source_code/test_repo.git
4: Permessi: Questo non dovrebbe causare un problema con la clonazione, il recupero o tirare, a meno che non è stato selezionato un percorso per il repository che doesnt hanno accesso in lettura. Se si ottiene un errore di autorizzazione negata quando si spinge allora fare riferimento al Permissions correction
5: Impostazione pubblica/chiave privata per GIT:
- Connettersi al server con stucco
- Impostare le autorizzazioni sul tuo ~/cartella .ssh:
chmod 700 .ssh
- Imposta i permessi sul tuo ~ /.ssh/authorized_keys:
chmod 600 authorized_keys
- generare le chiavi
ssh-keygen -t dsa
- accettare i nomi dei file che vuole utilizzare
- Non immettere una passphrase (basta inserire). Dovrai ripetere l'operazione con una passphrase in seguito.
- aggiungere la chiave pub per il file authorized_keys:
cat id_dsa.pub >> .ssh/authorized_keys
- modificare/etc/ssh/ssh_config e aggiungere la riga
PubkeyAuthentication yes
- riavviare il demone SSH
sudo /etc/init.d/ssh restart
- Copia
id_dsa
e id_dsa.pub
dal server sul disco locale guidare (usare winscp o sftp o alcuni di questi strumenti) c: \ users \ nomeutente \ .ssh directory (questo è per vista la posizione sarà un po 'diversa per altre versioni di windows)
- Impostare git tartaruga per puntare a C: \ Programmi \ Git \ bin \ ssh.exe (non in putrefazione)
Sia la riga di comando git che tortoise git dovrebbero essere configurate per funzionare. Prova a ripetere la clonazione sul tuo computer locale.
git clone ssh://[email protected]:port/home/source_code/test_repo.git
Si potrebbe ora vuole andare a ripetere l'impostazione dei tasti con una passphrase ....
hey grazie per la risposta - sì, ho correre spettacolo e la chiave viene caricato in esso. la variabile di ambiente GIT_SSH (tramite /Git/setup.ini) è impostata sul percorso come sopra. –
anche quando eseguo git push ssh: // utente @ host: porta/percorso/a/mioapp.git - ho solo "fatale: l'estremità remota riattacca inaspettatamente" –
c'è un modo per eseguire il debug in "GIT"? Traccia o qualcosa? come ottenere questo risultato? –