Hallo und guten Morgen,
ich bin in der Windows Welt zu hause aber komme immer wieder in den
Genuss mit der Linux Konsole zu spielen!
Leider habe ich ein schlechtes Gedächtnis und vergesse immer wieder die
Shell Befehle.
Nun möchte ich mir ein kleines Programm basteln mit dem ich per
Mausklick bestimmte Befehle an die Linux Maschine senden kann!
Ich habe zwar etwas gegoogelt aber nicht das richtige gefunden.
Kennt jemand ein Beispielprogramm in c# das eine SSH Verbindung aufbauen
kann und befehle senden?
Lg
Richard
Moin,
Da gibt's nichts im Framework.
Schau dir mal die damit ssh lib an. Die benutze ich zur Zeit. Hat zwar
die ein oder andere Schwäche, funktioniert aber im großen und ganzen.
Hast du dir mal die Hilfe angesehen?
http://sshnet.codeplex.com/releases/view/120565
SshNet Help
http://sshnet.codeplex.com/downloads/get/944154
Wenn du darin nach "examples" suchst, findest du rund 30 kleine
Beispiele.
Falls der Inhalt der Hilfedatei nicht angezeigt wird, Rechtsklick auf
die Datei im Windows Explorer -> Eigenschaften -> Zulassen.
BTW: Ich weiß nicht, wie man es hinbekommt, per Google keine Beispiele
zu finden ...
"SSH.NET" "example"
oder
"SSH.NET" "sample"
Nun kann ich eine Verbindung zum Raspberry aufbauen und das ls commando
absetzen.
Nun möchte ich mit einem Button die Verbindung aufbauen und mit einem
anderen Button die Befehle absetzen.
Wie kann ich von einem anderen Button auf die bevor geöffnete Verbindung
zugreifen?
Lg
und
Danke Richard!!
Wie gesagt: Deklariere Deine Connectioninfo als Instanzvariable. Wenn Du
nicht weißt, was das ist, liest Du Dich besser nochmal in die Grundlagen
der Programmierung ein. Du willst es doch nicht bloß zusammenkopieren,
sondern auch verstehen, oder ;)
http://openbook.rheinwerk-verlag.de/visual_csharp_2012/
Kommandozeilenpenner schrieb:> Wo genau hast du jetzt die ZeilePasswordConnectionInfo connectionInfo => new PasswordConnectionInfo("10.99.99.16", "pi", "raspberry");stehen? Und> wo wird client erzeugt?
Entschuldige bitte! Ich bin nicht im Stande "client" zusammen mit
connectionInfo zu erzeugen!
Bist du bitte so nett und hilfst mir auf die Sprünge?
Danke und LG
Ps hier mein bescheidener Code!
Vielen Dank für die Hilfe!!
Ich habe leider noch ein Problem das ich vom zweitem Button kein Result
zurückbekomme!
Woran kann das liegen?
Vielen Dank
Lg
ssh_flasche schrieb:> Ich habe leider noch ein Problem das ich vom zweitem Button kein Result> zurückbekomme!> Woran kann das liegen?
An ifconfig.
ifconfig liegt für gewöhnlich in /sbin und das haben normale Benutzer
nicht in $PATH
foo schrieb:> An ifconfig.> ifconfig liegt für gewöhnlich in /sbin und das haben normale Benutzer> nicht in $PATH
Danke für die Antwort!
Ich bin mir aber nicht sicher ob Du damit Recht hast. Denn Wenn ich mit
dem selben Benutzer Daten mit putty ifconfig ausführe bekomme ich eine
Antwort!
Woran kann es also liegen?
Danke
Lg
Benutz doch mal den Debugger und setzte bei dem if einen Breakpoint,
dann starte das Programm, drück dden Button und durchlaufe die Methode
mit F11 (Single step). Die Werte werden Dir unten links im Fenster
angezeigt.
ssh_flasche schrieb:> Danke für die Hilfe!> Sind im obigen Program die zwei button nicht im selben Thread?
Ja sind Sie. Ich verstehe den Link in diesem Zusammenhang auch nicht..
Meine Güte, was für ein Rumgefummel, um sich ein paar Kommandos nicht
merken zu müssen.
Wenn's schon sein muss, dann
- Auf Windows plink, oder bessern noch alle PuTTY-Programme installieren
(http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html).
- SSH-Schlüssel generieren und austauschen.
Damit wird der Aufruf eines Remote-Kommandos zu einer Zeile:
1
<pfad zur putty-installation>/plink.exe <user>@<host> <Kommando>
Beispielsweise
1
<pfad zur putty-installation>/plink.exe pi@10.99.99.16 ls
Wer sich die Zeile nicht merken möchte, schreibt sie und ein PAUSE in
einen Batch-Job, so richtig Old-School:
1
<pfad zur putty-installation>/plink.exe pi@10.99.99.16 ls
2
PAUSE
Mehrere Aufrufe die man sich nicht merken möchte? Mehrere Batch-Jobs.
Jeweils mit vernünftigem Namen in einem Folder. Ein Doppelklick auf den
gewünschten Job-Namen, fertig.
Keine Lust in jedem Batch-Job Parameter wie pi@10.99.99.16 reinschreiben
zu müssen? SET und CALL.
Sowas wie eine Auswahl statt mehrerer Batch-Jobs? CHOICE
foo schrieb:> ifconfig liegt für gewöhnlich in /sbin und das haben normale Benutzer> nicht in $PATH
Also Du hast recht mit root rechten funktioniert das Ganze!
Warum ist im Putty der Benutzer Pi ausreichend um ifconfig auszuführen?
Lg