AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Komponente für SSH-Verbindung
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente für SSH-Verbindung

Ein Thema von daliuz · begonnen am 7. Jun 2006 · letzter Beitrag vom 2. Apr 2017
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    
Benutzerbild von daliuz
daliuz
Registriert seit: 16. Apr 2004
Hallo,

Nachdem ich lange nach einer freien ssh-Komponente gesucht habe und im Netz nichts aufzutreiben war, habe ich mir selber etwas geschrieben. Secure Black Box wäre auch eine Alternative, kostet allerdings auch etwas.
(Die Komponente wurde mit Delphi2005Prof geschrieben.)

Gleich mal vorneweg -> Sie basiert auf Plink (gehört zu Putty). Es ist also nur ein Interface zwischen Delphi und Plink. Plink läuft unsichtbar im Hintergrund.

Es werden Events für Ankommende Daten und mögliche Fehler ausgelöst.

Zum Anzeigen und zur Eingabe eignet sich bestens "emulvt.pas" aus den ICS.

Somit ist es möglich über ssh und delphi, einen Befehl oder Batch- files mit mehreren Befehlen auf dem Remote-rechner auszuführen.

Wer es nicht als Terminal nutzen will, kann die Esqape-sequenzen wahlweise rausfiltern.

So denn, würde mich über Kommentare freuen!

Daliuz
Angehängte Dateien
Dateityp: zip plinkremote_777.zip (5,7 KB, 605x aufgerufen)
Dateityp: zip plinkremotev1.1_159.zip (5,8 KB, 727x aufgerufen)
 
dfried
 
#11
  Alt 9. Jun 2006, 08:30
Hallo daliuz,

dei Testprogramm funktioniert hier, aber hast du mal den Taskmanager offen gehabt während du das Programm laufen hattest? Das Programm verursacht ständig 100% last, auch wenn keine Ein-/Ausgaben gemacht werden.
  Mit Zitat antworten Zitat
Benutzerbild von daliuz
daliuz
 
#12
  Alt 9. Jun 2006, 14:06
Hi,

Hast recht, ich frag in einer Schleife die Pipes ab. Is wirklich ne schlechte Idee!
Ich versuch die Abfrage mal als Thread umzubauen. Zwar noch nie versucht, wird deswegen
bestimmt etwas dauern. Damit kümmert sich windows um die Ressourcen.

Vielleicht hat jemand eine andere bessere Idee?

CU
Daliuz
  Mit Zitat antworten Zitat
bigdoggy
 
#13
  Alt 16. Jun 2006, 13:38
Hi,

aber vorab erstmal vielen dank für die Arbeit der Komponente
und das Veröffentlichen.
Genau so ein Tool brauche ich um kurz ein paar Kommandos auf einem
Gerät abzusetzen. Werde also das Testprogramm um ein
Batch-Aufruf-Parameter erweitern, sodass es dann mit
einem Script die Befehle abarbeitet....

Zum CPU Problem:

habe einfach in plinkremote.pas in Zeile 204/205
nach dem Application.ProcessMessages ein
sleep(1) eingebaut.

Läuft einwandfrei unter XP mit Delphi 7 erzeugt.


Gruß Sven
  Mit Zitat antworten Zitat
Benutzerbild von daliuz
daliuz
 
#14
  Alt 23. Jun 2006, 08:18
Hallo

@bigdoggy

Ich freue mich über dein Interesse und deine Mitarbeit!
Wenn du es fertig hast kannst du es ja hier mit veröffentlichen.

1.Plink hat schon so einen Batch aufruf

(auszug aus der Hilfe)
Parameter:
-m file read remote command(s) from file

Aber hast recht, man kann das noch ordentlich einbauen.


2. zu sleep(1)
Wenn du die Zeile
while WaitForSingleObject(pi.hProcess, 0) <> Wait_Object_0 do durch
while WaitForSingleObject(pi.hProcess, 1) <> Wait_Object_0 do ersetzt, hast du den selben Effekt.(anstatt der 1ms kannst du auch noch höher gehen)
Das heißt aber das der Rest von dem Programm nur alle millisekunde aufgerufen wird.
Ich habe das mal mit Threads umgebaut, und es geht auch soweit. Du kannst es ja mal mit
testen. Ich bin momentan auf einem Serviceeinsatz und habe leider keine Zeit.
Ich hänge das File mal an.

Es hat sich eine Kleinigkeit in den Aufrufen geändert.

do_stop_process heißt jetzt
disconnect Ich habe auch noch sowas für sftp und scp geschrieben. Wenn Interesse besteht
stelle ich das am Wochenende mit hierein.

CU
Daliuz
Angehängte Dateien
Dateityp: pas plinkremote_211.pas (18,7 KB, 270x aufgerufen)
  Mit Zitat antworten Zitat
mwegner
 
#15
  Alt 26. Jun 2006, 18:01
Hi,

sensationell genau so etwas suche ich schon seit ewigen Zeiten. Ich habe die Komponente bereits
im Einsatz und bereits vergebens versucht das von Dir bereitgestellte Testprogramm
um die Beiden Features "Scroll Back / Copy and Paste" zu erweitern.

Auf der Web Seite http://www.overbyte.be habe ich zwar einen EmulVT Sample Code mit den gewünschten Funktionen
gefunden, leider war der Code jedoch nicht compelierbar und somit für mich mit meinem eingeschränkten Delphi Know How
unbrauchbar.


Hast Du vieleicht einen Tip wie man Scrollback, Copy and Paste auf einfache Art und Weise nachträglich implementieren kann um
so einen wirklich vollwertigen ssh-client like "Putty" zu erhalten?



Gruss

Micha
  Mit Zitat antworten Zitat
Benutzerbild von daliuz
daliuz
 
#16
  Alt 27. Jun 2006, 06:09
Hallo,

Ich nehme mal an du meinst "emulvtscroll.zip" von der ICS-seite.
Leider habe ich das auf die Schnelle auch nicht zum Laufen gebracht.
Es ist aber auch eine ziemlich alte Version 2.3. Die aktuelle Version
ist bei 2.15.

Meine Zeit ist leider momentan ziemlich dünn gesäht. Vielleicht kann
dir da jemand im Forum ein bißchen unter die Arme greifen.

Tut mir echt leid. Trotzdem danke fürs Interesse!

Daliuz
  Mit Zitat antworten Zitat
baurat
 
#17
  Alt 21. Jan 2007, 16:23
Hallo zusammen,

hab genau nach so etwas gesucht - vielen Dank, daliuz!

Eine kleine Ergänzung: die Stringfunktion PosEx gibts erst ab Delphi7, deswegen muss man die nachbauen:


function TPlinkremote.PosEx(const Substr: string; const S: string; Offset: Integer): Integer;
begin
if Offset <= 0 then Result := 0
else
Result := Pos(Substr, Copy(S, Offset, Length(S)));

if Result <> 0 then
Result := Result + Offset - 1;
end;

Damit bringt man's auch in D6 zum Laufen.

Was ich noch nicht gecheckt hab (geht das überhaupt): wie kann man sich anstelle mit Passwort auch mit nem Private Key authentifizieren? Das müsste ja so in der Art aussehen:
Plinkremote1.exe_parameters :=' -ssh -i meinPrivaterKey.ppk -l hssp remoteserver.de';

Klappt leider nicht. Ist aber nicht so wild, kann das über User/PW machen.

Also - vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von daliuz
daliuz
 
#18
  Alt 22. Jan 2007, 14:23
Hallo Baurat,

Da ich kein Delphi6 benutze ist mir das gar nicht aufgefallen...Danke für den Tip!

Ich glaube nicht das man sich mit einem Schlüssel auf dem Server autentifizeren kann. Diese wird meines Wissens nur für die Verschlüsslung und zur Identifikation des Servers als rechtmäßiger Partner genutzt. Ist die SSH-Kommunikation aufgebaut, wird das Login und das PW abgefragt. Dies ist deine Identifikation auf dem Server mit den dazugehörigen Rechten auf den Console.

Na denn, viel Spaß noch

Daliuz
  Mit Zitat antworten Zitat
delphis spassbremse
 
#19
  Alt 5. Jun 2007, 17:51
Hallo, noch eine kleine frage...

Was mache ich wenn ich einen IPCop ansteuern will, wo der SSH Port auf 222 und nicht auf 22 liegt?

Hab zwar schon geguckt, wo man den Port ändern kann, aber nix gefunden...
Ich denke, dass ich einen Parameter anhängen muss, aber ich wüsste jetzt leider nicht welchen.

Hat da jemand einen Rat?
MFG
  Mit Zitat antworten Zitat
hoika

 
Delphi 10.4 Sydney
 
#20
  Alt 5. Jun 2007, 18:27
Hallo,

beim "normalen" ssh ist das

-D 222


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz