FTP und SFTP Client Problem

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PIC18F2550
Beiträge: 104
Registriert: 29.04.2024 09:10
Computerausstattung: Server HP Proliant G7
PC AMD FX(tm)-9590, 64Gb Ram, 2x 2TB Raid5 SAS

FTP und SFTP Client Problem

Beitrag von PIC18F2550 »

Hallo,

wiso bekomme ich bei SFTP keine Verzeichnisanzeige wie bei FTP.

Code: Alles auswählen

If OpenFTP(0, "sftp://192.168.3.200", "admin","nonono",#True,2002)
  Debug "sftp: Erfolgreich verbunden"
  Debug GetFTPDirectory(0)
  If ExamineFTPDirectory(0)
    Debug NextFTPDirectoryEntry(0)
    While NextFTPDirectoryEntry(0)
      Debug FTPDirectoryEntryRaw(0)
    Wend
    FinishFTPDirectory(0)
  EndIf
  CloseFTP(0)
Else
  Debug "Konnte keine sftp: Verbindung aufbauen."
EndIf

If OpenFTP(0, "ftp://192.168.3.200", "admin","nonono",#True,2001)
  Debug "ftp: Erfolgreich verbunden"
  Debug GetFTPDirectory(0)
  If ExamineFTPDirectory(0)
    Debug NextFTPDirectoryEntry(0)
    While NextFTPDirectoryEntry(0)
      Debug FTPDirectoryEntryRaw(0)
    Wend
    FinishFTPDirectory(0)
  EndIf
  CloseFTP(0)
Else
  Debug "Konnte keine ftp: Verbindung aufbauen."
EndIf
Und so sieht die Antwort aus.

Code: Alles auswählen

sftp: Erfolgreich verbunden
/
1



ftp: Erfolgreich verbunden
/
1
drwxrwxrwx   1 root     root             4096 Jan 15 14:54 TEST
drwxrwxrwx   1 root     root            12288 Aug 12  2024 Transfer
drwxrwxrwx   1 root     root             4096 Feb  1 14:36 web
Das Problem liegt wohl in FTPDirectoryEntryRaw(0) begraben.

Danke
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 104
Registriert: 29.04.2024 09:10
Computerausstattung: Server HP Proliant G7
PC AMD FX(tm)-9590, 64Gb Ram, 2x 2TB Raid5 SAS

Re: FTP und SFTP Client Problem

Beitrag von PIC18F2550 »

Es scheinen die Funktion
FTPDirectoryEntryRaw()
SetFTPDirectory()
betroffen zu sein.

Bei
Debug FTPDirectoryEntryAttributes()
Debug FTPDirectoryEntryDate()
Debug FTPDirectoryEntryName()
Debug FTPDirectoryEntrySize()
Debug FTPDirectoryEntryType()
werden die Werte richtig ausgegeben.

Könnte das ein Bug sein?

--> PureBasic 6.20 (Windows - x86)

Normalerweise bediene ich den FTP-Server mit Filezilla aber dort gibt es keine Probleme.

Noch etwas ist mir aufgefallen die Ausgabe reinfolge ist unterschiedlich. :shock:

Code: Alles auswählen

sftp: Erfolgreich verbunden
/
web
Transfer
TEST
/photo/
OK

ftp: Erfolgreich verbunden
/
TEST
Transfer
web
/photo/
OK
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: FTP und SFTP Client Problem

Beitrag von NicTheQuick »

SFTP ist ein grundlegend unterschiedliches Protokoll im Vergleich zu FTP. Ein SSL/TLS-Äquivalent zu FTP wäre FTPS.
Das heißt auf der Serverseite werden SFTP- und FTP-Service wahrscheinlich von zwei völlig verschiedenen Prozessen zur Verfügung gestellt, d.h. die können sich auch komplett unterschiedlich verhalten.

Ich habe aber ehrlicherweise in Purebasic noch nie mit `OpenFTP()` gearbeitet. Da es laut Hilfe angeblich SFTP unterstützt, wundere ich mich allerdings darüber, dass es offenbar nicht möglich ist sich auch mittels Public Key zu identifizieren, sondern nur mit Passwort. Ich habe es mal ausprobiert. Bei mir scheint es zu funktionieren, aber nicht mit `FTPDirectoryEntryNameRaw()`:

Code: Alles auswählen

If OpenFTP(0, "sftp://192.168.178.31", "nicolas","super-sicheres-passwort", True,22)
	Debug "sftp: Erfolgreich verbunden"
	Debug GetFTPDirectory(0)
	If ExamineFTPDirectory(0)
		;Debug NextFTPDirectoryEntry(0)
		While NextFTPDirectoryEntry(0)
			Debug FTPDirectoryEntryName(0)
		Wend
		FinishFTPDirectory(0)
	EndIf
	CloseFTP(0)
Else
	Debug "Konnte keine sftp: Verbindung aufbauen."
EndIf
Das ergibt folgendes:
Debugger hat geschrieben:sftp: Erfolgreich verbunden
/
1
mnt
sbin -> usr/sbin
sys
opt
srv
dev
home
cdrom
libx32 -> usr/libx32
var
bin -> usr/bin
usr
snap
root
proc
etc
run
lib64 -> usr/lib64
lib32 -> usr/lib32
media
lib -> usr/lib
boot
..
.
Witzig wird es aber, wenn man versucht einen anderen Ordner aufzulisten, z.B. so:

Code: Alles auswählen

If OpenFTP(0, "sftp://192.168.178.31/home/nicolas", "nicolas","immer-noch-super-sicher",True,22)
Dann erhält man nur:
Debugger hat geschrieben:sftp: Erfolgreich verbunden
/home/nicolas:22/
Das heißt die Verbindung wird hergestellt, aber trotzdem macht er was ganz komisches. Da muss man dann daran denken, dass man `SetFTPDirectory(0, "/home/nicolas")` nutzen sollte.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: FTP und SFTP Client Problem

Beitrag von NicTheQuick »

Achso, und `SetFTPDirectory()` funktioniert bei mir mit SFTP:

Code: Alles auswählen

If OpenFTP(0, "sftp://192.168.178.31", "nicolas","jetzt-noch-sicherer",True,22)
	SetFTPDirectory(0, "/home/nicolas")
Ergibt gekürzt:
sftp: Erfolgreich verbunden
/home/nicolas/
tmp
<...>
TODO.txt~
Öffentlich
Dokumente
<...>
.condarc
.thunderbird
.python_history
..
.
Etwas nervig ist höchstens, dass Umlaute offenbar nicht funktionieren. In diesem Fall wird aus "Öffentlich" das Kunstobjekt "Öffentlich".

Die Funktion 'FTPDirectoryEntryRaw()' funktioniert bei SFTP allerdings wohl wirklich nicht korrekt.
Benutzeravatar
Bisonte
Beiträge: 2465
Registriert: 01.04.2007 20:18

Re: FTP und SFTP Client Problem

Beitrag von Bisonte »

Gab es da nicht einmal eine Anmerkung in der Dokumentation der FTP Funktionen,
dass es bei bestimmten Servern oder Servertypen nicht richtig funktioniert... ?
Ich glaube da ware von Microsoft Servern die Rede, bin mir aber nicht sicher.

Edit:

Aaaaber andersgesagt ist gerade die Beta 6.21 rausgerutscht, und dort wurde auch was an der FTP-Lib gemacht.
Also wieder an die Testbench ;)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
PIC18F2550
Beiträge: 104
Registriert: 29.04.2024 09:10
Computerausstattung: Server HP Proliant G7
PC AMD FX(tm)-9590, 64Gb Ram, 2x 2TB Raid5 SAS

Re: FTP und SFTP Client Problem

Beitrag von PIC18F2550 »

Der Server ist ein neuer Synology, keine Ahnung was das für ein System ist.
Aber auch bei Linux Servern scheint das aufzutreten.

Mein letzter Windserver war ein 2000er.
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Antworten