Router mit C++ über SSH steuern
-
Hi,
ich hab einen Router auf dem ein SSH Server läuft.
Jetzt möchte ich dem Router Befehle über ein von mir geschriebens C++ Programm senden, per SSH.Nur weis ich nicht wie ich dazu vorgehen muss.
Wie öffnet man mit c++ beispielweise eine SSH Verbindung zu einem anderen Rechner?
Und wie sendet man dann die Befehle über die Leitung?MfG, Thunder_08
-
Wie öffnet man mit c++ beispielweise eine SSH Verbindung zu einem anderen Rechner?
In Standard-C++ gar nicht. Standard-C++ ist fürchterlich autistisch und kennt sowas wie ein Netzwerk nicht.
Welches BS verwendest du? Welchen Compiler? Irgendeine Klassenbibliothek?
-
Hmm, hört sich ja nicht rosig an
Betriebssystem: WinXP Home
Compiler: Borland C++ 4
Klassenbibliothek, wie meinst du das?
Ich importier halt die, die ich brauche, aber ich weis ja nicht welche ich brauche....MfG
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
hi,
SSH (oder Secure SHell) ist ein Protokoll für die Erstellung einer sicheren Verbindung zwischen zwei Systemen, die eine Client-Server-Architektur verwenden. Für die Verbindungsaufbau werden empfängerspezifische Schlüsselpaare verwendet.
Solche Schlüsselpaare bestehen aus einem PrivateKey (geheimer Schlüssel zum Entschlüsseln, den nur der ,rechtmäßige" Empfänger besitzt) und einem PublicKey (öffentlicher Schlüssel zum Verschlüsseln für einen bestimmten Empfänger). Der eigentliche Datenaustausch wird dann über einen einzelnen gemeinsamen Sitzungsschlüssel (SessionKey) abgewickelt.Der Verbindungsaufbau - hier im Beispiel zur gwdu70.gwdg.de - läuft dabei etwa wie folgt ab:
1. Der lokale SSH-Client auf dem Arbeitsplatzrechner wendet sich an den Server, den SSH-Daemon, auf der gwdu70, um eine Verbindung aufzunehmen.
2. Der Server schickt daraufhin seinen öffentlichen Serverschlüssel und seinen öffentlichen Hostschlüssel dem Client.
3. Der Client prüft, ob der geschickte Hostschlüssel mit demjenigen übereinstimmt, den er bereits schon in einer Liste von Hostschlüsseln vorliegen hat.
4. Falls dies der Fall ist, verschlüsselt der Client eine von ihm erzeugte Zufallszahl mit den beiden übergebenen öffentlichen Schlüsseln (Hostkey und Serverkey). Diese Zufallszahl dient im weiteren Verlauf als aktueller Sitzungsschlüssel.
5. Der Server entschlüsselt mit seinen dazu passenden (!) geheimen Schlüsseln diese Zahl und verwendet diese Zahl als Schlüssel für die weitere Kommunikation (dieser Schlüssel ist nicht so sehr lang, wird dafür aber jede Stunde gewechselt).
6. Nun erst übergibt der Client - verschlüsselt - Userid und Passwort.
Nachdem lange Jahre das SSH-Protokoll in der Version 1 gute Dienste leistete, steht seit neuerem die Protokollversion 2 zur Verfügung. Ein SSH2-Client kann in der Regel auch Verbindungen mit einem SSH1-Server aufnehmen, und ein SSH2-Server startet bei Kontakt mit einem SSH1-Client den erforderlichen SSH1-Server automatisch, so dass wechselseitige Abwärtskompatibilität gewährleistet ist. Mit der Protokollversion 2 sind einige neue Features realisiert worden wie SecureFTP und einige interne Änderungen zum Protokollieren und Abwehren von feindlichen Angriffen.
kurze einführung in ssh: [urlhttp://www.franken.de/de/veranstaltungen/kongress/2002/ssh.pdf[/url]
verbindungsaufbau grob:
http://www.vorlesungen.uos.de/informatik/ifc99/ssh/09_Verbindung.rtfd/weitere infos:
http://www.taiyo.co.jp/~gotoh/ssh/connect.html
http://linuxmafia.com/ssh/win32.html
http://www.bitvise.com/sshlib.htmlirgendeine socket lib bzw crypto lib wirst du auch noch brauchen:
also schau dir mal http://www.openssl.org/ und http://curl.haxx.se/ ancu
-
Thx für die Antwort, aber wie ssh prinzipiell funktioniert wusste ich schon, auch wie prinzipiell eine Verbindung zustande kommt, die Frage ist jedoch wie kann mein C++ Programm eine SSH Verbindung zu einem SSH Server aufbauen und dem Server dann Befehle schicken?
Welche Bibliotheken benötige ich dafür, bzw welche Funktionen?
Und sind die bei Borland schon dabei?MfG
-
hallo,
hab gerade was gesichtet für dich:
nennt sich: Ultimate TCP/IP 4.11 und ist für windows!
[url]http://www.theultimatetoolbox.com/mfc/tcpip/index.aspx?section=TCPIP&body=webSolutions2.htm
[/url]-> Handle proxy tunneling without a problemschau dir das mal an...habs mir nur kurz angeschaut...vielleicht ist was für dich dabei...
n8
-
Seh' ich das dann richtig, dass weder c++ noch die WinAPI vernünftiges Werkzeug mit sich bringt um eine SSH Verbindung aufzubauen?
Da muss es doch eine quasi Standartmethode geben, Tools wie Putty bauen ja eben
eine solche Verbindung auf und die müssens ja auch irgendwie können...MfG
-
Seh' ich das dann richtig, dass weder c++ noch die WinAPI vernünftiges Werkzeug mit sich bringt um eine SSH Verbindung aufzubauen?
Richtig!
Da muss es doch eine quasi Standartmethode geben, Tools wie Putty bauen ja eben
eine solche Verbindung auf und die müssens ja auch irgendwie können...Lad dir den Quellcode runter und guck nach.
