# FTP via SSH2



## alert0h52 (30. Nov 2004)

ich möchte Dateien mittels FTP von einem Server abholen.

Muss mich zunächst aber mittels ssh2 - Protokoll auf dem Server authentifizieren. Ist dies geschehen,
muss diese Verbindung so lange geöffnet sein bis der FTP download abgeschlossen ist, da sonst
die FTP Verbindung nicht zu stande kommen kann.

hat jemand ne Lösung für dieses Problem??


----------



## foobar (30. Nov 2004)

Guckst du hier http://www.javaworld.com/javaworld/jw-04-2003/jw-0404-ftp.html


----------



## Bleiglanz (30. Nov 2004)

>>hat jemand ne Lösung für dieses Problem??

welches Problem?


----------



## alert0h52 (30. Nov 2004)

FTP download ist nicht so das Problem.

mir geht es hauptsächlich darum, wie ich mich per ssh2 authentifizieren kann. und wie ich die Verbindung dann für die zeit des download offen halten kann (ist das so ne art tunneling??)


----------



## Bleiglanz (30. Nov 2004)

scheint mir eh quatsch zu sein, so wie es sich anhört ist es eher eine art port-knocking? 

tunneling von ftp ist krampf, dazu gibts ja scp 

irgendwo hab ich schon mal eine SSH Library für Java gefunden, nimm einfach mal google zu Hilfe, sollte leicht zu finden sein!


----------



## meez (2. Dez 2004)

Hier:
http://www.jcraft.com/


----------



## bytefreak2k (10. Dez 2004)

Also, wenn ich Dich richtig verstanden habe möchtest Du eine Datei mittels verschlüsslter FTP bzw. SFTP Verbindung von einem SSH-Server abholen.
In diesem Fall würde ich nicht auf so umständliche Art und Weise mit Java-Klassen rumspielen sondern gleich mittels der Runtime-Klasse und dem exec() Befehl einen bereits installierten SSH-Client über die Kommandozeile verwenden um diese Datei runterzuladen.

Beispiel:

// Process ssh = Runtime.getRuntime().exec("sshclient -h remotehost -u guest");

In diesem Beispiel verwend ich den SSH-Client direkt von Secure Shell


----------



## meez (10. Dez 2004)

bytefreak2k hat gesagt.:
			
		

> In diesem Fall würde ich nicht auf so umständliche Art und Weise mit Java-Klassen rumspielen
> sondern gleich mittels der Runtime-Klasse und dem exec() Befehl einen bereits installierten SSH-Client über die Kommandozeile verwenden um diese Datei runterzuladen.




Ziemlich unqualifizierte Aussage, da er sonst ja direkt das ganze in einem Shellscript machen könnte...
Aufruf von externen Programmen sollte so wenig wie möglich erfolgen...


----------



## bytefreak2k (10. Dez 2004)

War ja schließlich auch nur ein Vorschlag, der mir diesbezüglich am einfachsten erschien.
Natürlich kann man dies auch mit einem Shell-Script lösen, allerdings wissen wir ja nicht, was noch alles hintendran steht.


----------

