pipe()?



  • Hallo

    Ich bin jetzt ein bisschen verwirrt, und ich weiß net ob sowas möglich ist, darum frag ich erst mal.

    Ich würde gerne dem Benutzer die Möglichkeit geben in meinem Programm mit SSH zu arbeiten. Und dabei würde ich, falls das möglich ist - weil ich mich eh in pipes einlesen will, eine Kommunikation zwischen meinem Programm und dem SSH machen.

    So in der art

    Mein Programm <------------> SSH
    Der Benutzer kann also in meinem Programm Host, Username, Passwort und Port definieren, dies wird an das SSH Programm weitergeleitet. Dieses stellt die Verbindung her und der Benutzer kann dann von meinem Programm aus mit dem SSH arbeiten.

    Kann das funktionieren?
    Könnt Ihr mir helfen?

    Danke mal



  • Keiner? 😕





  • Schreib mal noch einmal ganz genau, was du da machen möchtest. Ich bin mir nicht sicher, was genau du willst.



  • GNU-Fan schrieb:

    Schreib mal noch einmal ganz genau, was du da machen möchtest. Ich bin mir nicht sicher, was genau du willst.

    Ja also:

    SSH Befehl <--> Mein Program <--> User Eingabe

    Also Mein Programm soll so zu sagen ein Proxy zwischen den User Eingaben und dem SSH Befehl sein.

    Der User startet mein Programm.
    Er gibt einen Host ein, einen Username und ein Passwort.
    Mein Programm sendet dies mit einer pipe zu dem ssh befehl, dieser verbindet sich und sendet seine stdin pipe zu meinem Programm.

    Der User soll nun im Stande sein über mein Programm mit dem SSH Programm Kommunizieren...

    Also sollte mein Programm alle Usereingabe an /usr/bin/ssh weitergeben, sowie alle Ausgaben von /usr/bin/ssh entgegennehmen.



  • Und verstehst du jetzt was ich meine?



  • alsoagain schrieb:

    Also sollte mein Programm alle Usereingabe an /usr/bin/ssh weitergeben, sowie alle Ausgaben von /usr/bin/ssh entgegennehmen.

    Woran hapert's denn?



  • Badestrand schrieb:

    alsoagain schrieb:

    Also sollte mein Programm alle Usereingabe an /usr/bin/ssh weitergeben, sowie alle Ausgaben von /usr/bin/ssh entgegennehmen.

    Woran hapert's denn?

    Ich versteh nicht ganz wie ich das machen kann / soll.

    FILE *fp = popen("ssh --help", "r");
    			if (fp) {
    				char buffer[256];
    				int i;
    
    				while(i = fread(buffer, 256-1, 1, fp)) {
    					buffer[i] = '\0';
    					printf("%s", buffer);
    				}
    				pclose(fp);
    			}
    

    Damit kann sende ich jetzt ssh den --help flag und bekomme das auf dem Terminal angezeigt. So weit ist mir alles klar...


Anmelden zum Antworten