2013-06-06 28 views
12

Ho accesso a un account SSH che può accedere a un server GIT e sono in grado di clonare/spingere/tirare il repository in questo accesso SSH. Tuttavia non posso accedere a questo repository da nessun'altra parte.Accesso a repository Git tramite tunnel SSH

Sul conto SSH che uso,

git clone [email protected]:proj/myrepo.git 

per clonare il repo.

ho provato la creazione di un tunnel ssh al server git da un'altra macchina utilizzando,

ssh -L 3333:gitserver:22 [email protected] 
git clone ssh://localhost:3333/proj/repo.git 

Tuttavia continuo a ricevere richiesta una password per l'utente 'git'. Qualche idea su cosa sto facendo male qui?

risposta

12

Quando si esegue questa operazione:

git clone [email protected]:proj/myrepo.git 

un client ssh sta iniziando sull'host locale ('sshserver') e l'autenticazione con 'gitserver' utilizzando l'autenticazione a chiave pubblica. Se viene richiesta una password per l'utente 'git', significa che l'autenticazione della chiave pubblica non è riuscita e ssh sta passando al metodo successivo, che è l'autenticazione della password.

Il motivo più probabile per cui l'autenticazione della chiave pubblica non è riuscita è che il client ssh non ha la chiave privata necessaria. Sospetto in questo caso che la chiave necessaria per l'autenticazione come 'git @ gitserver' risieda in sshserver: ~/.ssh, nel qual caso non sarebbe disponibile per il client ssh avviato sul tuo host locale quando proverai a clonare il repository attraverso il tuo tunnel ssh.

Per risolvere questo problema, è necessario consentire a tale client di accedere alla chiave appropriata. È possibile aggiungerlo a ~/.ssh localmente o caricarlo in un agente ssh.

+0

Grazie a ciò ha funzionato (utilizzato anche http://stackoverflow.com/questions/4565700/specify-private-ssh-key-to-use-when-executing-shell-command-with-or-with-ruby) a configurare un file di configurazione per aiutare. – Bootstrapper

Problemi correlati