2008-09-04 12 views
12

Ich habe eine Verbindung über SFTP mit einem Server mit FileZilla und akzeptierte das Hinzufügen des SSH-Schlüssels des Servers zum Schlüssel-Cache in FileZilla.So extrahieren Sie SFTP SSH-Schlüssel aus dem Schlüssel-Cache in FileZilla FTP-Client

Wie kann ich diesen zwischengespeicherten Schlüssel in eine Schlüsseldatei extrahieren, sodass er durch andere SFTP-Anwendungen verwendet werden kann, für die eine Schlüsseldatei bereitgestellt werden muss?

Ich konnte nichts in der FileZilla-Dokumentation zu diesem Thema finden.

+0

Das Endergebnis schieße ich für ist SFTP über Java mit einer Bibliothek von EnterpriseDT.com zu tun. Ein Teil ihrer API benötigt beim Herstellen einer Verbindung eine Schlüsseldatei oder den Schlusstext selbst. Ich kann jedoch keine Informationen darüber finden, wie ich die Schlüsselinformationen vom SFTP-Server, mit dem ich eine Verbindung herstellen möchte, abrufen kann, damit ich sie speichern kann. Ideen? –

Antwort

12

Wenn Sie den standardmäßigen openssh-Konsolenclient (cygwin oder von linux) verwenden, werden die Hostschlüssel einzeln in ~/.ssh/known_hosts gespeichert. Von dort aus müssen Sie nur herausfinden, welches Bit dieses Hostschlüssels für Ihre Bibliothek benötigt wird.

Putty speichert auch Host-Schlüssel, aber es scheint sie in Hex zu kodieren. Diese finden Sie unter HKCUR \ Software \ SimonTatham \ PuTTY \ SshHostKeys

0

Wenn ich Sie nicht falsch verstehe: Sie müssen nicht.

Wenn Sie eine Verbindung mit dem Server mit einer anderen Anwendung (zB: PuTTY) herstellen und den Server zuvor nicht gesehen haben, werden Sie aufgefordert, den Schlüssel zu akzeptieren.

Ich sehe, warum Sie dies tun möchten, aber jede Anwendung könnte ihre eigene Möglichkeit haben, Schlüssel zu speichern.

+0

Weil er seine eigene Anwendung in Java schreibt. – PRMan

5

Thomas hatte Recht. FileZilla pendelt auf PuTTYs PSFTP-Programm und speichert die gespeicherten Schlüssel in einem Hex-Format an dem Registrierungsschlüssel, den er aufgelistet hat (HKCUR \ Software \ SimonTatham \ PuTTY \ SshHostKeys). Ich brauchte den Schlüssel in known_hosts-Format, so dass ich muß in der Lage ein windows version of openssh auf seiner Empfehlung zu installieren und verwendet, um das ssh-keyscan Tool den Server und speichern Sie die Taste Info heraus in dem richtigen Format zu treffen:

ssh-keyscan -t rsa <my_ftp_ip_address> > c:\known_hosts 
ssh-keyscan -t dsa <my_ftp_ip_address> > c:\known_hosts 

Danke Thomas und SO!

5

Danke Dougman für den Tipp!

Um weiteren Neulingen zu helfen, Ihre Antwort zu lesen.
Bevor Sie den ssh-keyscan ausführen, müssen Sie, vorausgesetzt, dass openssh standardmäßig installiert wird, einige Befehle ausführen (lesen Sie hierzu die Schnellstart/readme-Installation).
Hier sind meine Befehle, mit denen ich den Host-Schlüssel erhalten kann.

C:\Program Files\OpenSSH\bin>mkgroup -l >> ..\etc\group 
C:\Program Files\OpenSSH\bin>mkpasswd -l >> ..\etc\passwd 
C:\Program Files\OpenSSH\bin>net start opensshd 
The OpenSSH Server service is starting. 
The OpenSSH Server service was started successfully. 
C:\Program Files\OpenSSH\bin>ssh-keyscan -t rsa vivo.sg.m.com > c:\known_hosts 
vivo.sg.m.com SSH-2.0-Sun_SSH_1.1 
Verwandte Themen