2010-07-02 23 views
5

Ho cercato e cercato, per quello che sembra un orario, una soluzione a questo problema e niente di ciò che ho provato funziona. Lasciatemi prefigurare tutto questo dicendo che mentre ho usato * nix prima, sono praticamente un noob quindi sono sicuro che ho perso un passaggio nel setup di Git da qualche parte.Git continua a chiedere la password

Ho installato una casella Ubuntu sulla rete al lavoro per ospitare il nostro nuovo repository Git. La scatola sta usando Git, Gitosis e anche ViewGit. Tutto sembra impostato correttamente e posso visualizzare il repository che ho aggiunto all'interno di ViewGit. Il problema è quando vado a clonare il pronti contro termine tramite TortoiseGit in Windows. Quando digito l'indirizzo di "[email protected]: /home/git/Plugins/.git/" chiede automaticamente la password per l'utente "git" sulla finestra di Linux. Posso cambiare questo indirizzo da "git @" a qualsiasi altro nome utente sul sistema e chiederà anche la password per quell'utente. In ogni caso, inserendo la password per quell'utente continua il clone del repository al sistema locale. Anche ramificazioni, put e pull richiederanno anche una password e, se inserite, tutto funziona correttamente.

Ho creato il file pub RSA nelle finestre su cui ho provato questo (tramite git bash) e li ho memorizzati nella cartella keydir di gitosis, oltre ad aggiungere il file gitosis.conf degli utenti (il nome del file rsa meno il .pub). Ho anche modificato il mio file sshd_config per includere "AllowUsers git" e anche il mio nome utente sul sistema. Sono in perdita, non mi sembra una buona idea dare a tutti coloro che voglio avere accesso a questo repository l'indirizzo IP del server, un nome utente e quindi la password a quel nome utente solo così possono scaricare del codice. Grazie per l'aiuto!

risposta

0

Sono andato attraverso la stessa identica cosa sulla mia scatola circa 2 settimane fa :) Siete già al 90% del modo in cui ci siamo.

Per correggere TortoiseGit, disinstallarlo e reinstallarlo, ma questa volta scegliere di usare Putty P-Link invece di OpenSSH. Quindi quando vai a spingere o tirare al progetto, controlla la piccola cosa "autoload putty key".

+0

Ciò peggiora le cose. Ora richiede sia un nome utente che una password, dove come prima aveva almeno capito il nome utente da solo :( – user64718

+0

Inoltre, digitando il nome utente e la password non è più possibile scaricare il repository. – user64718

2

Ho avuto lo stesso problema di recente: ho potuto clonare/passare al repository gestito da gitosis da Cygwin, ma TortoiseGit ha continuato a chiedere la password dell'utente git ([email protected]).

Infine potrei farlo funzionare reinstallando TortoiseGit (ho selezionato l'opzione Plink al momento dell'installazione), quindi sulle impostazioni TortoiseGit andare su Rete> Client SSH e modificare il valore sul tuo binario Cygwin ssh (cioè C: \ cygwin \ bin \ ssh.exe).

Modificando questo, sono stato in grado di eseguire tutte le operazioni da TortoiseGit e mi viene richiesta la password chiave SSH che ho definito su Cygwin.

Inoltre, verificare che il gitosis.conf contiene le chiavi pubbliche che sono visibili a Cygwin, rimuovere l'estensione ".pub": se il mio Cygwin installare mostra che si stanno myuser @ myhost, la voce associata a gitosis .conf dovrebbe essere myuser @ myhost e il file con la chiave pubblica dovrebbe essere sul keydir/[email protected]

0

Prima di tutto, l'URL si utilizza per la clonazione di un repo git potrebbe essere git + ssh come nel tuo esempio, http/https o varie altre cose. Sia SSH che HTTP sono molto comuni e la gente usa spesso SSH per utenti autenticati che saranno in grado di inviare al repository e HTTP per altri utenti, che possono clonare e tirare, ma che non possono tipicamente spingere o avere limiti su dove possono spingere a. Se è possibile visualizzare il repository in ViewGit, probabilmente si può ottenere un URL HTTP per il repository, che è possibile utilizzare senza effettuare il login per clonare o tirare.

Ora, se si desidera continuare con SSH, ci sono due cose che dovete guardare:

È necessario essere in grado di connettersi al server utilizzando SSH, senza immettere una password. Se stai usando cygwin SSH, si dovrebbe essere in grado di fare

ssh [email protected] 

e connettersi a quella macchina senza essere chiesto per una password. Se stai usando PuTTY, dovresti essere in grado di aprire PuTTY, inserire il nome host e chiedere un nome utente, ma poi connetterti senza password (o usare la riga di comando della mastice corrispondente). Nota che quando lo fai con successo, una delle due cose potrebbe accadere. O ottieni una shell normale su quella macchina come utente git. Oppure vedrai un breve messaggio, qualcosa come "SSH è impostato correttamente per usare git." e la connessione si chiuderà immediatamente.

Se non è possibile farlo, è necessario impostare la chiave pubblica sul server git e caricare la chiave privata nella memoria nella casella di Windows. Il primo è probabilmente fatto attraverso la gitosi. Per quest'ultimo si utilizzerà Pageant (se si usa Putty) o ssh-add se si utilizza cygwin ssh. Se è necessario, è possibile utilizzare una chiave senza passphrase all'inizio. Questo rimuoverà il passo in cui devi caricare manualmente la chiave e inserire la passphrase. Finché non è possibile connettersi in questo modo tramite SSH senza password, non andare al passaggio successivo.

La seconda cosa che devi fare è configurare ciò che ssh utilizza il tuo client Git e come. Se riesci a connetterti come sopra, ma il tuo client git non può connettersi o non può connettersi senza clonare, devi configurarlo.

L'idea di base è di comunicare a TortoiseGit esattamente quale sia la riga di comando da ssh al server git. Potrebbe essere necessario controllare cose come PATH e variabili di ambiente per assicurarsi che TortoiseGit possa replicare esattamente come ci si connette usando ssh. Questa risposta https://stackoverflow.com/a/11249914/1737957 fornisce l'idea di base.

Problemi correlati