Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Securebridge SSH-Server frage (https://www.delphipraxis.net/212830-securebridge-ssh-server-frage.html)

DelTurbo 9. Apr 2023 16:15

Securebridge SSH-Server frage
 
Hi,
erstmal frohe Ostern. Ich habe da ein "kleines" problem. Ich möchte mit Securebridge einen SSH-Server schreiben, aber ich finde seit 2 Tagen nicht raus wie ich an den Text, den der Client (z.b. mit putty) sendet komme. Ich lande immer auf dem Server Rechner in der cmd.exe.

Was mache ich falsch, oder habe ich etwas vergessen "umzubiegen"?

Vielen dank im Voraus

himitsu 9. Apr 2023 17:00

AW: Securebridge SSH-Server frage
 
Tja, SSH ist nunmal eine Schnittstelle von einem Client (z.B. Konsole) zu einer Secure Shell bzw. Secure Socket Shell, also zum Konsolen-Server.

Sicher, dass du nicht einfach nur SSL meinst?
Als sichere Verbindung zwischen einem Client und irgendeiner Server-Anwendung, also einen sicheren Tunnel für irgendein Protokoll, z.B. auf Basis von TCP/UDP.



https://www.devart.com/sbridge/

DelTurbo 9. Apr 2023 22:43

AW: Securebridge SSH-Server frage
 
Hi,
erstmal sorry für die späte antwort. Ja ich meine SSH. Also TScSSHServer. Dort gibt es ein "OnClientData" aber dort kommt nix an. Leider. Ich dachte das läuft dann wie eine "normale" TCP/IP verbindung ab.

Redeemer 10. Apr 2023 22:01

AW: Securebridge SSH-Server frage
 
Kann es sein, dass OnClientData nicht für SSH- sondern für SFTP-Verbindungen ist? Ich würde nämlich das, was ich von einem SSH-Client bekomme, nicht als "Data" bezeichnen. Du bezeichnest es als Text, ich würde es als Tastenanschläge bezeichnen.

Hast du dir mal die Beispiele angesehen? Eigentlich kann man dem Hersteller auch solche Fragen klären, war so meine Erinnerung. Das ist aber schon fast 10 Jahre her.

himitsu 10. Apr 2023 22:34

AW: Securebridge SSH-Server frage
 
Kann man,

fand da (bisher) aber nur die andere Richtung.
https://forums.devart.com/viewtopic.php?t=35871



Und jo, da gibt es ja auch noch für fast alles eine Demo von denen.

DelTurbo 11. Apr 2023 10:23

AW: Securebridge SSH-Server frage
 
Huhu,
die ServerDemos habe ich natürlich probiert. Das war meine erste Idee. Leider landet man bei denen auch in der cmd.exe.

Gruß

Klaus01 11. Apr 2023 10:59

AW: Securebridge SSH-Server frage
 
Zitat:

Zitat von DelTurbo (Beitrag 1520851)
Huhu,
die ServerDemos habe ich natürlich probiert. Das war meine erste Idee. Leider landet man bei denen auch in der cmd.exe.

Gruß

.. wo möchtest Du denn sonst landen?
Auf Linux landest Du auf der shell.
Auf Windows landest Du auf dem command shell.

Der ssh-Server bietet Dir doch nur ein ssh Zugriff auf das System (Shell-Zugriff).

Grüße
Klaus

Redeemer 11. Apr 2023 22:28

AW: Securebridge SSH-Server frage
 
Zitat:

Zitat von himitsu (Beitrag 1520844)
Kann man,

fand da (bisher) aber nur die andere Richtung.
https://forums.devart.com/viewtopic.php?t=35871



Und jo, da gibt es ja auch noch für fast alles eine Demo von denen.

Ich meinte sogar direkt deren Support.

DelTurbo 12. Apr 2023 10:41

AW: Securebridge SSH-Server frage
 
Hi,
eigentlich wollte ich mich dort einlogen mit einem Schlüssel und eigene Kommandos geben können damit die Software dann entsprechend handeln kann.
Aber ich sehe, das geht wohl irgenwie nicht. Ausser ich würde statt der cmd.exe etwas anderes (also ein Programm von mir) starten was den die sachen annimmt und ausführt.

Trotzdem danke an euch, ich dachte man könnte halt diese eingabe abfangen und mache nur etwas falsch.

himitsu 12. Apr 2023 12:34

AW: Securebridge SSH-Server frage
 
bei der CMD kann man auch Aliase registrieren, die du intern auch auf eine eigene EXE/Batch umleiten könntest ... weiß aber nicht ob das auch bei dieser umgeleiteten Konsole funktioniert

Klaus01 12. Apr 2023 13:42

AW: Securebridge SSH-Server frage
 
.. setze mal in dem Event BeforeChannelConnect Direct := true

Delphi-Quellcode:
procedure TForm1.ScSSHServer1BeforeChannelConnect(Sender: TObject;
  ChannelInfo: TScSSHChannelInfo; var Direct: Boolean);
begin
  direct := true;
end;
dann kannst Du im Event onDataFromClient die Eingaben abfangen:
Delphi-Quellcode:
procedure TForm1.ScSSHServer1DataFromClient(Sender: TObject;
  ChannelInfo: TScSSHChannelInfo; const Buffer: TArray<System.Byte>;
  const Offset, Count: Integer);
begin
  if count > 0 then
  begin
    memo1.Lines.Add(String(buffer))
  end;
end;
Grüße
Klaus

DelTurbo 12. Apr 2023 13:49

AW: Securebridge SSH-Server frage
 
WAU,
genau das habe ich gesucht und nirgends gefunden. Vielen Dank!!!

himitsu 12. Apr 2023 13:56

AW: Securebridge SSH-Server frage
 
Zitat:

Delphi-Quellcode:
memo1.Lines.Add(String(buffer))

Du weißt Ihr wisst, dass vor allem bei Servern die Events meistens in Threads ablaufen (nicht synchronisiert)
und dass die VCL nicht thread-safe ist?

Außerdem ist es nicht intelligent ein dynamisches Byte-Array in einen String casten zu wollen. (vor allem da seit D2009 ein Char nicht mehr 1 Byte groß ist)

und (falls es mal dazu kommt) unter 64 Bit die DynArrays und LongStrings keine kompatible Struktur mehr besitzen.

DelTurbo 12. Apr 2023 14:14

AW: Securebridge SSH-Server frage
 
Das empfangen und auswerten klappt Super. Nur habe ich nun das nächste Problem. Daten (nix Binäres oder so) zum Client senden.
Mit SendToClient(ChannelInfo,Buffer,Count); kommt nichts an. Ich habe da mal reingetraced, der Buffer ist dann leer obwohl vorher was drin war, und zwar habe ich das in der OnClientData eingebaut, quasi als echo.

Edit: Hat sich erledigt. Hatte einen KLEINEN fehler drin.

Nochmals Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz