20 Stimmen

So extrahieren Sie den SFTP SSH-Schlüssel aus dem Schlüssel-Cache des FTP-Clients FileZilla

Ich habe eine Verbindung zu einem Server über SFTP mit FileZilla hergestellt und akzeptiert, dass der SSH-Schlüssel des Servers zum Schlüssel-Cache in FileZilla hinzugefügt wird.

Wie kann ich diesen zwischengespeicherten Schlüssel in eine Schlüsseldatei extrahieren, so dass ich ihn in anderen SFTP-Anwendungen verwenden kann, die die Bereitstellung einer Schlüsseldatei erfordern?

Ich habe in der FileZilla-Dokumentation nichts diesbezügliches finden können.

0 Stimmen

Das Endergebnis, das ich anstrebe, ist SFTP über Java unter Verwendung einer Bibliothek von EnterpriseDT.com. Ein Teil ihrer API erfordert die Bereitstellung einer Schlüsseldatei oder den Schlüsseltext selbst bei der Verbindung. Ich kann jedoch keine Informationen darüber finden, wie ich die Schlüsselinformationen vom SFTP-Server abrufen kann, zu dem ich eine Verbindung herstellen möchte, damit ich sie speichern kann. Haben Sie eine Idee?

22voto

Tom Mayfield Punkte 6195

Wenn Sie den standardmäßigen openssh-Konsolen-Client (Cygwin oder Linux) verwenden, werden die Host-Schlüssel in ~/.ssh/known_hosts gespeichert, und zwar in jeder Zeile. Von dort aus ist es eine einfache Angelegenheit, herauszufinden, welches Bit des Hostschlüssels für Ihre Bibliothek benötigt wird.

Putty speichert auch Host-Schlüssel, aber es scheint sie in Hex zu kodieren. Diese können unter HKCUR gefunden werden \Software\SimonTatham\PuTTY\SshHostKeys

10voto

Doug Porter Punkte 7611

Thomas hatte Recht. FileZilla setzt auf das PSFTP-Programm von PuTTY auf und speichert die gespeicherten Schlüssel im Hex-Format unter dem von ihm angegebenen Registrierungsschlüssel (HKCUR \Software\SimonTatham\PuTTY\SshHostKeys ). Ich brauchte den Schlüssel im Format known_hosts, so dass ich eine Windows-Version von openssh auf seine Empfehlung hin und benutzte das Tool ssh-keyscan, um den Server zu treffen und die Schlüsselinformationen im richtigen Format zu speichern:

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!

7voto

drzaus Punkte 22843

Wenn Sie lieber eine grafische Benutzeroberfläche verwenden möchten, können Sie den Hostschlüssel aus dem Protokollfenster oder dem Popup-Fenster für die erste Verbindung mit dem FTP-Client WinSCP abrufen: https://winscp.net/eng/docs/ssh_verifying_the_host_key

6voto

Nasri Najib Punkte 1211

Danke Dougman für den Hinweis!

Um Neueinsteigern, die Ihre Antwort lesen, weiterzuhelfen.
Vor dem Ausführen von ssh-keyscan, vorausgesetzt openssh ist standardmäßig installiert, müssen einige Befehle ausgeführt werden (lesen Sie die Quickstart/Lektüre zur Installation für Details).
Hier sind meine Befehle, die es mir ermöglichen, den Host-Schlüssel zu erhalten.

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

-1voto

Andrew Burns Punkte 13015

Wenn ich Sie nicht missverstehe: Sie brauchen es nicht.

Wenn Sie sich mit einer anderen Anwendung (z. B. PuTTY) mit dem Server verbinden und diese den Server noch nicht kennt, werden Sie aufgefordert, den Schlüssel zu akzeptieren.

Ich verstehe, warum Sie das tun wollen, aber jede Anwendung könnte ihre eigene Art haben, Schlüssel zu speichern.

1 Stimmen

Weil er seine eigene Anwendung in Java schreibt.

0 Stimmen

Oder Sie führen ein PowerShell-Skript mit der WinScpNet-Bibliothek aus. Das kann mehrere Gründe haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X