2008-10-10 9 views
24

Ich muss Code überprüfen und ausführen. Ich habe die URL:Wie bekomme ich einen SVN-Checkout mit einem öffentlichen/privaten Schlüsselpaar?

svn+ssh://[email protected]/home/svn/project/trunk 

Ich habe eine Datei mit ihrem privaten Schlüssel. Was mache ich, um diesen Code zu bekommen?

+0

Mit welchem ​​Betriebssystem arbeiten Sie? – Neall

+0

Mac OS X Leopard lokal, aber das sollte wirklich auf einer RH ES4-Box gehen. –

+1

Ich bekomme auch "-bash: svn + ssh: // ... blah blah Keine solche Datei oder Verzeichnis", obwohl ich Svn und SSH installiert habe und sie die ganze Zeit verwenden. Kann ich das aus Eclipse mit dem Subclipse-Plugin (welches ich auch viel benutze) machen? –

Antwort

3

Der private Schlüssel wird auf dem Client-Computer, oft als ~/.ssh/id_rsa, ~/.ssh/id_dsa oder ~/.ssh/identity bezeichnet, abhängig von der SSH-Version und der Art des Schlüssels. Sie können jedoch einfach ssh -i path/to/private.key verwenden.

Dies setzt voraus, dass der entsprechende öffentliche Schlüssel auf dem Server unter ~/.ssh/authorized_keys vorhanden ist und dass auf Ihrem lokalen Computer der OpenSSH-Client ausgeführt wird. Wenn Sie PuTTY unter Windows verwenden, öffnen Sie einfach das Pageant-Programm und importieren Sie den Schlüssel über die GUI.

+8

ist es mir nicht klar, wie man es mit Svn verwendet? – WonderLand

+9

das gleiche für mich .. die Antwort ist nicht korrekt. –

+2

Diese Frage fragt nach Svn, nicht ssh – Transcendence

1

Fügen Sie den privaten Schlüssel zu Ihrem Ordner ~/.ssh/ hinzu und führen Sie dann ssh-agent $SHELL; ssh-add; aus, und dann sollte die svn co dieser URL funktionieren.

+0

Ihre privaten Schlüssel _do nicht _ gehen Sie in ~/.ssh/config. – ephemient

+0

Hoppla, du hast vollkommen recht, das hätte 'authorized_keys' sein sollen. –

47

Wenn Sie für SVN nur einen benutzerdefinierten Schlüssel verwenden, wird die folgenden Arbeiten:

SVN_SSH="ssh -i /path/to/key_name"

export SVN_SSH

svn commands

http://labs.kortina.net/2010/01/30/svn-checkout-with-private-key-over-ssh/

+0

Beachten Sie, dass ich immer einen vollständigen Pfad für den Pfad zum Schlüssel verwenden würde. –

+0

Der Weg ist jetzt absolut! – David

+0

es ist verwendbar, wenn nur ein Repository-Server verwenden, für mehrere Repository-Server benötigen ~/.ssh/config-Datei verwenden – AnViKo

13

diesen Eintrag in Ihrem ~/.ssh/config Datei:

Host YOUR_SERVER 
IdentityFile YOUR_PRIVATE_KEY_PATH # (ex: ~/.ssh/rsa) 
User USER_NAME 

Für weitere Optionen, see the ssh_config man page.

0

Hier sind die Schritte, die ich aus dem Mac OS X-Befehlszeile auf meinen Server über SVN angeschlossen haben + ssh:

Auf Server:

ssh-keygen -b 1024 -t dsa -f mykey (creates mykey and mkey.pub files) 

Kopieren Inhalt mykey.pub zu ~/.ssh/authorized_keys (create authorized_keys-Datei, wenn sie nicht existiert)

Herunterladen mkey auf dem lokalen Computer und führen:

chmod 600 mkey (the next step won't run otherwise) 
svn-add mkey (enter your passphrase) 

Kasse von Ihrem SVN-Server mit ssh:

svn co svn+ssh://[email protected]/repos/path 

mkey und mkey.pub von Ihrem Server löschen

8

nur Befehl ssh-add verwenden (es wird Ihr nach Ihrem Passwort fragen, diese ist das Kennwort, das Sie beim Erstellen dieses öffentlichen privaten Schlüsselpaars verwendet haben).

ssh-add PATH_TO_YOUR_PRIVATE_JEY 
e.g. ssh-add ~/.ssh/myPrivateKey.key 

sicher, dass Sie den Schlüssel korrekt, indem Sie diese

ssh-add -l 

hinzugefügt, dass alle Identität auflistet Dateien, die es verwendet.

2

Zusätzlich zu den Antworten zwei Screenshots von Eclipse 3.7 mit Subversive.


General settings
Geben Sie den Benutzernamen! (Ich habe das vergessen, bevor ich den Screenshot gemacht habe). Do nicht ein Passwort eingeben.


SSH Settings den Schlüssel Passwort eingeben, wenn Sie private Schlüssel Passwort geschützt ist.


Ein Bild sagt mehr als tausend Worte.