MySQL C API über libssh verwenden.

Schnelle objektorientierte, kompilierende Programmiersprache.
lxuser
Beiträge: 8
Registriert: Di Nov 18, 2014 5:50 am

MySQL C API über libssh verwenden.

Beitrag von lxuser » Fr Nov 21, 2014 7:46 am

Hallo Community,

ich bin Anfänger in C und gerade dabei ein Programm zu schreiben mit dem man MySQL Datenbanken über SSH bearbeiten kann.
Ich nutze dafür libssh und das MySQL C API.

SSH verbindung aufbauen ist kein problem aaaaber wie kann ich mich mit MySQL nun über libssh auf den server verbinden?
Die einzige möglichkeit die ich sehe ist das SSH portforwarding zu nutzen und mich mit MySQL auf lokalhost zu verbinden
Geht das nicht besser? würds gerne vermeiden unnötig lokale Ports zu öffnen

Wäre super wenn jemand Beispielcode hätte wie ich das MySQL login an libssh weiterleiten kann :)

mfro
Beiträge: 346
Registriert: Mi Jan 16, 2013 4:58 pm

Re: MySQL C API über libssh verwenden.

Beitrag von mfro » Fr Nov 21, 2014 8:36 am

Mysql kann, wenn entsprechend kompiliert, selbstständig SSL-verschlüsselte Datenbankverbindungen aufbauen.

Die Arbeit, die Du dir da machen willst, ist schon getan: http://dev.mysql.com/doc/refman/5.0/en/ ... tions.html und Bestandteil des C-API.

Server und client müssen dann nur mit den richtigen Parametern gestartet werden.
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

lxuser
Beiträge: 8
Registriert: Di Nov 18, 2014 5:50 am

Re: MySQL C API über libssh verwenden.

Beitrag von lxuser » Fr Nov 21, 2014 8:45 am

Nicht SSL sondern SSH

mfro
Beiträge: 346
Registriert: Mi Jan 16, 2013 4:58 pm

Re: MySQL C API über libssh verwenden.

Beitrag von mfro » Fr Nov 21, 2014 9:03 am

lxuser hat geschrieben:Nicht SSL sondern SSH
Was hast Du gegen SSL?
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

lxuser
Beiträge: 8
Registriert: Di Nov 18, 2014 5:50 am

Re: MySQL C API über libssh verwenden.

Beitrag von lxuser » Fr Nov 21, 2014 9:51 am

mfro hat geschrieben:
lxuser hat geschrieben:Nicht SSL sondern SSH
Was hast Du gegen SSL?

Nun über SSL kann ich keine weiteren Befehle an das Betriebssystem schicken.
Ausserdem muss ich bei meinem Server die Adresse von dem PC angeben der externe Zugriffserlaubnis auf den MySQL Server hat, das heißt ich muss jedesmal meine IP adresse angeben wenn ich das nicht über SSH Tunnel.

Allgemein wäre es interesannt zu wissen wie man sowas programmiert.

mfro
Beiträge: 346
Registriert: Mi Jan 16, 2013 4:58 pm

Re: MySQL C API über libssh verwenden.

Beitrag von mfro » Sa Nov 22, 2014 9:13 am

lxuser hat geschrieben:
mfro hat geschrieben:
lxuser hat geschrieben:Nicht SSL sondern SSH
Was hast Du gegen SSL?

Nun über SSL kann ich keine weiteren Befehle an das Betriebssystem schicken.
und das ist meiner Ansicht nach so ganz gut eingerichtet. Würde der mysql-Server auf ssh-Verbindungen lauschen (so habe ich dich verstanden), würden - so er das erlauben würde (brrr)- Betriebssystemkommandos mit der uid des mysql-Servers ausgeführt (und hätten z.B. zunächst mal uneingeschränkte Zugriffsrechte auf beispielsweise alle Datenbankdateien).
Das erzeugt bei mir Gänsehaut...
lxuser hat geschrieben: Ausserdem muss ich bei meinem Server die Adresse von dem PC angeben der externe Zugriffserlaubnis auf den MySQL Server hat, das heißt ich muss jedesmal meine IP adresse angeben wenn ich das nicht über SSH Tunnel.

Allgemein wäre es interesannt zu wissen wie man sowas programmiert.
Wenn Du eine anderes als das standardmäßige Verbindungsprotokoll verwenden willst, müsstest Du entweder ssh port forwarding verwenden oder den MySQL-Server selbst erweitern. Letzteres würde ich lieber lassen, das könnte zu einem Lebenswerk werden. Möglicherweise könnte man dasselbe auch mit einer geschickten Kombination von Server- und Client-Plugins realisieren, so etwas habe ich aber noch nie probiert.

Hast Du bedacht, daß Du für ssh immer einen Shell-account auf dem Zielsystem brauchst? Das ist keineswegs eine Selbstverständlichkeit, eher die Ausnahme.

Was Du eigentlich genau machen/bezwecken willst, habe ich noch nicht verstanden. Ein Datenbankconnector ist ein Datenbankconnector und eine Remote-Shell-Verbindung ist eine Remote-Shell-Verbindung. Eine Verquickung aus beidem ziemlich wahrscheinlich ein sicherheitstechnischer Alptraum.
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

lxuser
Beiträge: 8
Registriert: Di Nov 18, 2014 5:50 am

Re: MySQL C API über libssh verwenden.

Beitrag von lxuser » Sa Nov 22, 2014 9:33 am

und das ist meiner Ansicht nach so ganz gut eingerichtet. Würde der mysql-Server auf ssh-Verbindungen lauschen (so habe ich dich verstanden), würden - so er das erlauben würde (brrr)- Betriebssystemkommandos mit der uid des mysql-Servers ausgeführt (und hätten z.B. zunächst mal uneingeschränkte Zugriffsrechte auf beispielsweise alle Datenbankdateien).
Das erzeugt bei mir Gänsehaut...
neiiin
Ich will als erstes eine SSH verbindung zum Server aufbauen und als Tunnel verwenden so das ich dann Befehle auf dem Betriebssystem ausführen kann.
Über den Tunnel kann ich mich dann zb bei MySQL anmelden oder andere dinge tun.
Wenn Du eine anderes als das standardmäßige Verbindungsprotokoll verwenden willst, müsstest Du entweder ssh port forwarding verwenden oder den MySQL-Server selbst erweitern. Letzteres würde ich lieber lassen, das könnte zu einem Lebenswerk werden. Möglicherweise könnte man dasselbe auch mit einer geschickten Kombination von Server- und Client-Plugins realisieren, so etwas habe ich aber noch nie probiert.

Hast Du bedacht, daß Du für ssh immer einen Shell-account auf dem Zielsystem brauchst? Das ist keineswegs eine Selbstverständlichkeit, eher die Ausnahme.

Was Du eigentlich genau machen/bezwecken willst, habe ich noch nicht verstanden. Ein Datenbankconnector ist ein Datenbankconnector und eine Remote-Shell-Verbindung ist eine Remote-Shell-Verbindung. Eine Verquickung aus beidem ziemlich wahrscheinlich ein sicherheitstechnischer Alptraum.
Ja sieht so aus als gehts nur mit port forwarding hmm.
SSH zugang hab ich natürlich ;-)
Kann mir auchnicht vorstellen das das so selten ist ausser vllt bei billigem Webspace oder ollen Windows Kisten.
Bei Linux Servern sollte sowas dabei sein.

Das ist Sicherheitstechnich ehr ziemlich gut.
Man braucht nur einen einzigen Port nach aussen zu öffnen den Port 22 und über den kann man dann Befehle ans Betriebsystem schicken und z.b. MySQL datenbanken bearbeiten.

mfro
Beiträge: 346
Registriert: Mi Jan 16, 2013 4:58 pm

Re: MySQL C API über libssh verwenden.

Beitrag von mfro » Sa Nov 22, 2014 11:02 am

lxuser hat geschrieben: Das ist Sicherheitstechnich ehr ziemlich gut.
Man braucht nur einen einzigen Port nach aussen zu öffnen den Port 22 und über den kann man dann Befehle ans Betriebsystem schicken und z.b. MySQL datenbanken bearbeiten.
Na ja, da sind wir wohl unterschiedlicher Ansicht.

Eine SSL-Verbindung zur Datenbank erlaubt ausschließlich Datenbankabfragen. Sonst nix. Das würde ich eher als "sicher" bezeichnen. Hackt jemand diese Verbindung, kann er im schlimmsten Fall die Datenbank kaputt machen.

Schafft jemand deine ssh-Verbindung, hat er die Datenbank am Wickel _und_ deinen Server gleich mit.

Sicherheitstechnisch erscheint mir sinnvoller, das funktional zu trennen.
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

lxuser
Beiträge: 8
Registriert: Di Nov 18, 2014 5:50 am

Re: MySQL C API über libssh verwenden.

Beitrag von lxuser » Sa Nov 22, 2014 12:24 pm

Bei MySQL muss man sich ja trotzdem noch mit username und passwort anmelden.
Ich versteh dein Problem nicht.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: MySQL C API über libssh verwenden.

Beitrag von Xin » Sa Nov 22, 2014 4:13 pm

Kannst Du kurz erklären, warum Du dieses Vorhaben hast? @lxuser?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten