2015-07-29 9 views
12

Ho un account su una macchina da laboratorio ssh-friendly in cui immagazzino molti progetti privati, così posso accedervi da più computer (e mi permette di usare solo i miei pochi repository Github privati ​​per le cose su cui più persone lavoreranno) .È possibile avere le dipendenze del recupero del carico da un git remoto privato?

Sembra che la ruggine è ben attrezzato per recuperare i dati locali e pubbliche utilizzando le cose come

[dependencies.foo] 
git = "https://github.com/bar/foo" 

[dependencies.baz] 
path = "/path/to/baz" 

ma non ho trovato un modo per farlo funzionare usando ssh git (ad esempio git = "[email protected]:bar/foo", o nel mio caso labmachine:bar/foo). Ho impostato password/keygen ssh, se questo aiuta.

Non è un grosso problema se non esiste. Al momento sto solo clonando manualmente il repository e usando path = ../foo, che funziona fintanto che mantengo la mia struttura di directory lo stesso e mi ricordo di manualmente pull tutte le dipendenze su tutte le mie macchine. Tuttavia, renderebbe le cose molto più semplici se potessi creare Cargo per farlo, soprattutto se ho solo bisogno di demo veloce sul mio laptop o altro. file di

Host * 
    UseKeychain yes 
    AddKeysToAgent yes 
    IdentityFile ~/.ssh/id_rsa 

con la chiave privata (RSA):

+0

Non penserei che il carico venga fornito con una sorta di strumento per l'autenticazione di git, poiché l'idea del carico è quella di afferrare le dipendenze pubbliche per uno strumento di costruzione one-for-all. –

+0

Mi aspetto che se 'git clone foo' funziona, allora' git = "foo" 'funzionerà. Dovrebbe usare le stesse chiavi, per quanto ne so. Cosa succede realmente? –

+0

@ChrisMorgan se si tenta di utilizzare la sintassi ssh (ad es. Git @ github solo per esempio) si ottiene "url non valido' [email protected]: my/crate': URL relativo senza una base " – LinearZoetrope

risposta

2

utilizzare un percorso completo SSH piuttosto che stenografia di Git:

git = "ssh://landmachine/bar/foo" 
+1

Hmm, non funziona. Se uso il mio alias definito in '~/.ssh/config' ottengo" nessun host conosciuto ". Inserendo l'url completo viene visualizzato il messaggio 'Errore di autenticazione: agente di connessione fallito'. Ho verificato che il percorso ssh completo funzioni con 'git clone', per essere chiari. – LinearZoetrope

+0

Questo è problematico. Non sono sicuro di cosa stia succedendo, allora. –

2

su MacOS Sierra, ho dovuto creare un file .ssh/config come questo puntato a, e quindi impartire il comando:

ssh-add -K ~/.ssh/id_rsa 

che (finalmente!) ha permesso un prova come:

git = "ssh://[email protected]/skipjaq/loda.git" 

per funzionare perfettamente.

Non so con quale frequenza dovrò ripetere il comando ssh-add, ma sembra che questo debba essere mantenuto almeno fino al prossimo riavvio.

Questa anomalia è apparentemente una funzionalità di ssh-agent su macOS Sierra.

+0

Posso confermare che ho dovuto ri-emettere il comando 'ssh-add' prima che funzionasse di nuovo (dopo un riavvio causato da un aggiornamento). –

Problemi correlati