ssh client mit synapse

Alle Fragen zur Netzwerkkommunikation

Re: ssh client mit synapse

Beitragvon six1 » 23. Jul 2019, 12:03 Re: ssh client mit synapse

Thema ist ja wegen des Preises durch... aber DEVART --> "SecureBridge" verwendet keine DLL
Alles im Source der Komponenten!
Gruß, Michael
six1
 
Beiträge: 103
Registriert: 1. Jul 2010, 19:01

Beitragvon Warf » 23. Jul 2019, 13:51 Re: ssh client mit synapse

six1 hat geschrieben:Thema ist ja wegen des Preises durch... aber DEVART --> "SecureBridge" verwendet keine DLL
Alles im Source der Komponenten!

Das ist für mich ein gewaltiger Grund dagegen. Grade bei sicherheitskritischen anwendungen möchte ich die maximale sicherheit haben. Die OpenSSL (von der die libssl stammt) ist die meistgetestete Security Library die es gibt. An der Entwickeln hunderte experten, und sie wird von millionen von nutzern täglich benutzt. Das ist der absolute gold standard an Sicherheit, und alles was weniger getestet wird kann als strikt schlechter angesehen werden.

Und sorry, ich weiß nicht wies bei euch aussieht, aber geld zu bezahlen für eine schlechtere komponente ist für mich nicht drin. Nur um das mal festzuhalten, wenn man auf Linux openSSH verwendet, verwenden die intern auch die LibreSSL (Fork von OpenSSL), und die hätten theoretisch die manpower um das selbst zu implementieren, sie sind aber nicht blöd und wissen das die OpenSSL zu benutzen der einzig vernünftige weg ist.

Außerdem, man kann die OpenSSL auch statisch bauen, dann kann man sie statisch gegen linken und benötigt keine DLL
Warf
 
Beiträge: 1148
Registriert: 23. Sep 2014, 17:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon six1 » 23. Jul 2019, 13:54 Re: ssh client mit synapse

Ähmm, ja... natürlich muss die sshlib installiert werden!
Die wird nicht mitgeliefert, aber SecureBridge baut natürlich darauf auf.

Andere DLL's oder Libs sind aber nicht von Nöten...
Gruß, Michael
six1
 
Beiträge: 103
Registriert: 1. Jul 2010, 19:01

Beitragvon Warf » 23. Jul 2019, 13:58 Re: ssh client mit synapse

six1 hat geschrieben:Ähmm, ja... natürlich muss die sshlib installiert werden!
Die wird nicht mitgeliefert, aber SecureBridge baut natürlich darauf auf.

Andere DLL's oder Libs sind aber nicht von Nöten...


Das macht natürlich viel mehr Sinn, ansonsten wäre das echt blöd
Warf
 
Beiträge: 1148
Registriert: 23. Sep 2014, 17:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon Warf » 23. Jul 2019, 14:04 Re: ssh client mit synapse

willi4willi hat geschrieben:Ich habe mich auch erfolglos mit dem Thema "SSH mit Synapse" herumgeschlagen und bin dann auf die Verwendung von externen Tools ausgewichen, die ich mit TProcess aufrufe.
Z.B. unter Windows gibt es von putty auch pscp, pftp und plink. Die sind nur wenige kbyte groß.
Ich weiß, es hört sind nicht besonders elegant an, aber ob ich nun eine DLL verwende oder diese Programme, ist für mich kein großer Unterschied.


Sowas ähnliches hab ich ihm (über skype) auch vorgeschlagen, funktioniert an sich recht gut da putty sowohl für Windows, als auch für Linux und MacOS verfügbar ist, und überall das selbe interface bietet (glaub mir die apple openSSH version aufzurufen ist ein absoluter krampf, da die passworteingabe nicht von der ssh exec sondern vom OS übernommen wird, und du daher nicht automatisiert ein passwort eingeben kannst). Und ansonsten sind verschiedene OpenSSH versionen auch fürn arsch, mit putty ist das super einfach, vor allem weil man putty unter mac mit homebrew, unter linux über den paketmanager installieren kann, und unter windows einfach die plink.exe ins selbe verzeichnis legen kann.

Hier das beispiel was ich ihm geschickt hatte (natürlich ist sleep zum warten bis daten da sind nicht unbedingt die beste idee)
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
  sl: TStringList;
  port: longint;
  errOut, pw: string;
begin
  if FSSHProcess.Running then
  begin
     // Alten prozess beenden
    FSSHProcess.CloseInput;
    FSSHProcess.WaitOnExit;
    sl := TStringList.Create;
    try
     // Alles was noch nicht gelesen wurde rauslesen
      sl.LoadFromStream(FSSHProcess.Output);
      OutMemo.Lines.AddStrings(sl);
    finally
      sl.Free;
    end;
  end;
  FSSHProcess.Options := FSSHProcess.Options + [poUsePipes];
  FSSHProcess.Executable := 'plink';
  FSSHProcess.Parameters.Clear;
// -T interpretiere input nicht als user terminal
  FSSHProcess.Parameters.Add('-T');
  if TryStrToInt(PortEdit.Text, port) then
  begin
    FSSHProcess.Parameters.add('-P');
    FSSHProcess.Parameters.add(port.ToString);
  end;
 
  pw := PassEdit.Text;
  if not pw.IsEmpty then
  begin
    FSSHProcess.Parameters.add('-pw');
    FSSHProcess.Parameters.Add(pw);
  end;
  FSSHProcess.Parameters.Add('%s@%s', [UserEdit.Text, ServerEdit.Text]);
 
  FSSHProcess.Execute;
// warte um verbindung aufzubauen
  sleep(200);
// Lese Error
  SetLength(ErrOut, FSSHProcess.Stderr.NumBytesAvailable);
  FSSHProcess.Stderr.Read(errOut[1], errOut.Length);
// Falls error: Wenn mit Pass anfängt ist es die PasswortAbfrage in OpenSSH (dabei wird Passwor: auf stderr geschrieben)
// Ansonsten (sollte mit ssh: anfangen) ist es ein fehler
  if (errOut.Length > 0) then
  begin
    ShowMessage('Error: ' + errOut);
    FSSHProcess.CloseInput;
    FSSHProcess.WaitOnExit;
    Exit;
  end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
  cmd: String;
  sl: TStringList;
begin
  cmd:=CmdEdit1.Text+#10;
  // Kein command oder nicht connected
  if (cmd = #10) or not FSSHProcess.Running then exit;
  // Sende command
  FSSHProcess.Input.Write(cmd[1], cmd.Length);
  // Warte auf ergebnis (das geht schlauer als ein fester sleep)
  Sleep(200);
  sl := TStringList.Create;
  try
   // Lese den output
    sl.LoadFromStream(FSSHProcess.Output);
    OutMemo.Lines.AddStrings(sl);
  finally
    sl.Free;
  end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  FSSHProcess := TProcess.Create(self);
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
  if FSSHProcess.Running then FSSHProcess.CloseInput;
end;
Warf
 
Beiträge: 1148
Registriert: 23. Sep 2014, 17:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon reiter » 23. Jul 2019, 14:33 Re: ssh client mit synapse

Ja nochmal vielen Dank an dich
Ich muss das alles nochmal durchtesten, weil ich im Hintergrund dann ssh Befehle habe , bzw im Moment läuft das alles über Telnet
Was mir dabei vorschwebt ist ein Telnet Client (der ja schon existiert) und man das Switchen kann über ne checkbox oder RadioButton auf ssh
reiter
 
Beiträge: 92
Registriert: 18. Nov 2017, 17:58

• Themenende •
Vorherige

Zurück zu Netzwerk



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried