JSch Sicherheit mit SFTP-Sitzung.setConfig("StrictHostKeyChecking", "Nein");
Ich benutze JSch mit privaten Schlüssel, um FTP-Datei
- jsch.addIdentity(privatekeyfile);
- Session session = jsch.getSession( "user", "domain.com" ,22);
- Sitzung.setConfig("StrictHostKeyChecking", "Nein");
Linie 3 in Frage. Ohne diese Zeile, JSch funktioniert nicht.
Meine Frage ist:
Wird die Linie 3 stellen Sie den SFTP-transfer unsicher?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deaktivieren der
StrictHostKeyChecking
option wird die Verbindung weniger sicher, als wenn die option aktiviert ist, weil es wird lassen Sie Sie eine Verbindung zu remote-Servern, ohne zu überprüfen, ob Ihre SSH-host-Schlüssel. Wenn die option aktiviert ist, werden Sie nur in der Lage, verbindungen zu Servern, die keys sind bekannt für Ihre SSH-client.Haben, müssen Sie entscheiden, was, dass bedeutet für Ihren konkreten Anwendungsfall sind die Server, die Sie verbinden, auf einem privaten, lokalen Netzwerk oder machen Sie eine Verbindung über das internet? Ist das ein Test-oder Produktionsumgebung?
Wenn Sie Zweifel haben, ist es besser, sich zu irren auf der Seite der Sicherheit. Ich würde empfehlen die Aktivierung
StricktHostKeyChecking
und mit dersetKnownHosts
Methode, um eine Datei, die enthält die remote-host-Schlüssel.ssh-keyscan -t rsa hostname > known_hosts
Hostname wäre der Ziel-server Sie sich verbinden möchten, in diesem Fall. Dann übergeben Sie einfach die Datei auf diesetKnownHosts
Methode.ssh-keyscan -t rsa abc.com
und poste die Ausgabe.$ ssh-keyscan -t rsa abc.com
Ausgänge nichts. Es zu beenden und kommen zurück, um Befehl-Linie.$ ssh-keyscan -t rsa abc.com
$
ssh [email protected]
Ausgang? (Ersetzen Sie einen gültigen Benutzernamen)getaddrinfo abcxxx.com: Name or service not known
ssh-keyscan -t rsa localhost
und sehen, ob der produziert nichts.ssh-keyscan -t rsa localhost
produziert etwas: # localhost SSH-2.0-OpenSSH_6.2 localhost ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfkfofn+oakKAvx2meT90jom1oRdBevPFP/2A+tN4+abc.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfkfoFN+oakKAvx2meT90jom1oRdBevPFP/2A+tN4+
session.setConfig("StrictHostKeyChecking", "no")
. Ich hoffe das ist wirklich secure FTP! Vielen Dank!Ja, es wird die Verbindung (und die übertragung) weniger sicher. Vor allem, macht es die Verbindung offen zu Man-in-the-middle-Angriffe.
Sollten Sie nie die
StrictHostKeyChecking
zuno
, es sei denn, Sie kümmern sich nicht um Sicherheit (wie bei der Verbindung in ein privates Netzwerk).Es ist nicht wahr, dass "Ohne diese Zeile, JSch funktioniert nicht". Sie müssen nur, um Ihren code zu akzeptieren, die erwarteten server host Schlüssel. Entweder über die
setKnownHosts
oder diesetHostKeyRepository
Methoden.Beispiele finden Sie Wie zu beheben Java UnknownHostKey, während mit JSch SFTP-Bibliothek?
Können Sie Lesen meine Artikel auf überprüfen der host-Schlüssel zu verstehen, seine Bedeutung. Es ist über WinSCP SSH - /SFTP-client, aber es ist in der Regel gilt für jeden anderen SSH-client zu/library.