Thema ist ja wegen des Preises durch... aber DEVART --> "SecureBridge" verwendet keine DLL
Alles im Source der Komponenten!
ssh client mit synapse
Re: ssh client mit synapse
Gruß, Michael
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: ssh client mit synapse
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.six1 hat geschrieben:Thema ist ja wegen des Preises durch... aber DEVART --> "SecureBridge" verwendet keine DLL
Alles im Source der Komponenten!
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
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...
Die wird nicht mitgeliefert, aber SecureBridge baut natürlich darauf auf.
Andere DLL's oder Libs sind aber nicht von Nöten...
Gruß, Michael
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: ssh client mit synapse
Das macht natürlich viel mehr Sinn, ansonsten wäre das echt blödsix1 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...
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: ssh client mit synapse
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.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.
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;
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
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