SSH Verbindung zur (MySQL-)Datenbank

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich möchte mit einem Java-Programm auf eine MySQL Datenbank zugreifen.
Lokal und übers eigene Netzwerk kein Problem, funktioniert bereits.
Jetzt möchte ich aber zusätzlich auf eine externe Datenbank zugreifen, sprich ich habe einen VirtualServer bei einem Hoster auf welchem unter anderen eine MySQL Datenbank läuft. Ich habe keinen Root-Zugriff auf diesem Server, jedoch eine SSH-Verbindung.

Die Frage:
Was muss ich tun um Datenbankzugriff zu erhalten, sprich das mein Java-Programm die Datenbank verändern und Daten auslesen kann? Muss der Server weitere Vorraussetzungen erfüllen bzw. Rechte vergeben damit das funktioniert (was ich dann mit dem Hoster abklären müsste)?
Das Java-Programm läuft auf einem Windows-Betriebssystem (XP Pro)!

Muss/kann ich da sowas wie Putty verwenden oder kann ich das rein mit Java machen, brauch ich dafür eventuell sowas:
http://www.ganymed.ethz.ch/ssh2/
"Der Ganymed-SSH2 für Java-Bibliothek (implementiert das SSH-2-Protokoll) wird in Ganymed und einigen anderen Projekten an der ETH Zürich genutzt. Es ermöglicht dir, dich von deinen Java-Programmen aus an den SSH-Servern anzumelden."

?


Sorry falls das ne dumme Frage ist, hab leider noch keine Ahnung von Netzwerkprogrammierung, schon gar nicht in Java...


Gruß
Christian
 
G

Guest

Gast
Habs zuerst mit Putty probiert und funktionierte auch einwandfrei.
Wollte es dann aber auch rein mit Java machen damit ich nicht überalle Putty installieren muss und immer mitstarten muss, habs also mit obigem Package versucht und kann nur sagen:
Funktioniert einwandfrei!
Ohne try/catch sind es gerade mal 4 Zeilen die man braucht um eine SSH Verbindung herzustellen INKLUSIVE Portforwarding!

Von daher kann ich das Package bisher absolut empfehlen!
 
T

tuxedo

Gast
Hab sowas in der Art auch mal gemacht, nur nicht mit MySQL sondern mit nem Gameserver der nicht öffentlich zugänglich sein sollte. Ist schon ne klasse Sache...
 

Crach

Mitglied
Wie hast dies geschaft? Der Gast sprach ja davon, dass er es erst mittels Putty hinbekommen hatte - un d geh mal von aus, wenn putty es schaft, dann muss es auch mit java irgendwie gehen.
Wie muss man Putty konfigurieren..oder allg. alles einstellen, damit man mit der datenbanl/oder was auch immer eine ssh-verbindung hat?
 

Waldi

Bekanntes Mitglied
Ich hab das schonmal mit http://www.ganymed.ethz.ch/ssh2/ geschafft. Ist ganz einfach. Also ich muss da eigentlich nichts dazu schreiben. Da sind beispiele dabei die selbsterklärend sind.

Code:
public class PublicKeyAuthentication
{
	public PublicKeyAuthentication()
	{
		String hostname = "IPDesServers";
		String username = "xyz";
//nur wenn public key authentication benutzt wird
		File keyfile = new File("id_rsa"); // or "~/.ssh/id_dsa"
		String keyfilePass = "abc"; // will be ignored if not needed

		try
		{
			/* Create a connection instance */

			Connection conn = new Connection(hostname);

			/* Now connect */

			conn.connect();

			/* Authenticate */

			boolean isAuthenticated = conn.authenticateWithPublicKey(username, keyfile, keyfilePass);

			if (isAuthenticated == false)
				throw new IOException("Authentication failed.");

			/* ===== OK, now let's establish some local port forwardings ===== */
			
			/* Example Port Forwarding: -L 8080:[url]www.ethz.ch:80[/url] (OpenSSH notation)
			 * 
			 * This works by allocating a socket to listen on 8080 on the local interface (127.0.0.1).
			 * Whenever a connection is made to this port (127.0.0.1:8080), the connection is forwarded
			 * over the secure channel, and a connection is made to [url]www.ethz.ch:80[/url] from the remote
			 * machine (i.e., the ssh server).
			 * 
			 * (the above text is based partially on the OpenSSH man page)
			 */

			/* You can create as many of them as you want */
			
			conn.createLocalPortForwarder(5432, "127.0.0.1", 5432);
			conn.createLocalPortForwarder(10000, "127.0.0.1", 10000);
			//LocalPortForwarder lpf1 = conn.createLocalPortForwarder(5432, hostname, 5432);
			
			/* Now simply point your webbrowser to 127.0.0.1:8080 */
			/* (on the host where you execute this program)                         */

			/* ===== OK, now let's establish some remote port forwardings ===== */
			
			/* Example Port Forwarding: -R 127.0.0.1:8080:[url]www.ganymed.ethz.ch:80[/url] (OpenSSH notation)
			 * 
			 * Specifies that the port 127.0.0.1:8080 on the remote server is to be forwarded to the
			 * given host and port on the local side.  This works by allocating a socket to listen to port
			 * 8080 on the remote side (the ssh server), and whenever a connection is made to this port, the
			 * connection is forwarded over the secure channel, and a connection is made to
			 * [url]www.ganymed.ethz.ch:80[/url] by the Ganymed SSH-2 library.
			 * 
			 * (the above text is based partially on the OpenSSH man page)
			 */

			/* You can create as many of them as you want */
			
			//conn.requestRemotePortForwarding("127.0.0.1", 5432, "192.168.0.4", 5432);

			/* Now, on the ssh server, if you connect to 127.0.0.1:8080, then the connection is forwarded
			 * through the secure tunnel to the library, which in turn will forward the connection
			 * to [url]www.ganymed.ethz.ch:80[/url]. */

			/* Sleep a bit... (30 seconds) */
			//sleepSomeTime(30000);

			/* Stop accepting remote connections that are being forwarded to [url]www.ganymed.ethz.ch:80[/url] */

			//conn.cancelRemotePortForwarding(5432);

			/* Sleep a bit... (20 seconds) */
			//sleepSomeTime(20000);

			/* Stop accepting connections on 127.0.0.1:8080 that are being forwarded to [url]www.ethz.ch:80[/url] */

			//lpf1.close();
			
			/* Close the connection */

			//conn.close();

		}
		catch (IOException e)
		{
			e.printStackTrace(System.err);
			JOptionPane.showMessageDialog (null,e.getMessage());
			System.exit(2);
		}
	}

Du musst dann die DB Anfragen auf 127.0.0.1 machen. In meinem Beispiel ist es so: Alle Port Anfragen auf 127.0.0.1:5432 werden durch den Tunnel auf den Server weitergeleitet und werden dort von 22 nach 5432 weitergeleitet.

Hoffe das war verständlich ansonsten guck dir mal die Seite an.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
A Nach Export mysql Verbindung zur Datenbank nicht möglich, was tun? Datenbankprogrammierung 7
T MySQL Kann Verbindung zur MySQL Datenbank nicht herstellen. Datenbankprogrammierung 4
N Problem mit Verbindung zu externer MySQL Datenbank Datenbankprogrammierung 8
C Verbindung zur MySQL Datenbank scheiter. "Bad handshake Datenbankprogrammierung 2
K keine Verbindung zu mysql Datenbank Datenbankprogrammierung 11
L Verbindung zu MySQL-Datenbank Datenbankprogrammierung 2
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
G MySQL Tables 1:1 verbindung Datenbankprogrammierung 14
N Trennt sich die Verbindung zur DB (MySQL) automatisch? Datenbankprogrammierung 3
G persistence.xml für MySQL - Verbindung Datenbankprogrammierung 6
B MySQL-Verbindung ausschließlich zu localhost möglich Datenbankprogrammierung 7
M Problem mit MYSQL Verbindung Datenbankprogrammierung 7
B MySQL Verbindung herstellen | ConnectException Datenbankprogrammierung 2
S MySQL Verbindung Datenbankprogrammierung 8
Linad persistente MySQL Verbindung oder non persistent? Datenbankprogrammierung 3
G MySQL Verbindung Datenbankprogrammierung 2
M verbindung zu mysql Datenbankprogrammierung 2
G JDBC Verbindung zu MySQL-Server auf lokalem Rechner Datenbankprogrammierung 5
G linux mysql keine verbindung Datenbankprogrammierung 8
L Wie geht Verbindung zu MySQL? Datenbankprogrammierung 5
raptorrs Plötzlich keine Verbindung zur Datenbank mehr möglich Datenbankprogrammierung 14
OnDemand SSL Verbindung zu externer DB Datenbankprogrammierung 5
C MySQL Remote Verbindung zu MariaDB Datenbankprogrammierung 11
M SQL , CSV Verbindung : Zu Umfangreicher Code durch Unwissenheit Datenbankprogrammierung 21
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
Z Beim schließen des Programms die verbindung zur DB beenden. Datenbankprogrammierung 4
Husamoli345 JSF-JDBC Verbindung Crud Datenbankprogrammierung 15
V keine Verbindung möglich (Access-DB) Datenbankprogrammierung 3
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
M Oracle SQLException: Verbindung getrennt Datenbankprogrammierung 2
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
C Verbindung mit SQLExpress Datenbankprogrammierung 9
S E(fx)clipse Verbindung zu MS SQL Express aufbauen Datenbankprogrammierung 7
M H2 Verbindung zur Datenbank komplett schließen Datenbankprogrammierung 11
F MySQL Verbindung zum SQL-Server Datenbankprogrammierung 27
Thallius MySQL jdbc schließt Verbindung nach vielen Request von selber Datenbankprogrammierung 8
C datenbank verbindung config Datenbankprogrammierung 23
I MariaDB-Verbindung in JAVA Datenbankprogrammierung 11
J Verbindung aufbauen Datenbankprogrammierung 7
S DB2 Express C - keine Verbindung zur Datenbank Datenbankprogrammierung 2
I Es kann keine Verbindung zum Server aufgebaut werden Datenbankprogrammierung 12
Thallius MySQL Merkwürdiges JDBC Verhalten bei VPN Verbindung. Datenbankprogrammierung 7
W Keine ODBC-Verbindung zur MSAccess-Datenbank Datenbankprogrammierung 2
S Auslagern der Datenbank Verbindung Datenbankprogrammierung 2
M Verbindung von Java Programm zur Acccess Datenbank (mdb-Datei) Datenbankprogrammierung 0
D NullPointerException bei DB Verbindung Datenbankprogrammierung 6
AssELAss Verbindung i5 Series 7.1 / 7.2 (DB2) mit Oracle SQL Developer Datenbankprogrammierung 3
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
M MySQL Verbindung zum Server aufbauen ohne DB ansprechen Datenbankprogrammierung 2
D Java MS Access Verbindung Datenbankprogrammierung 10
X MySQL DB-verbindung ohne JDBC/ODBC Datenbankprogrammierung 1
J Keine Verbindung zu MSSQL DB mit JDBC Datenbankprogrammierung 3
A Verbindung mit Access 2007 Datenbank herstellen Datenbankprogrammierung 1
I Datenbank Verbindung geht nicht Datenbankprogrammierung 2
N MySQL com.microsoft.sqlserver.jdbc.SQLServerException: Die Verbindung wurde geschlossen. Datenbankprogrammierung 1
1 MySQL Verbindung mit localhost als IP funktioniert, aber mit normaler IP nicht Datenbankprogrammierung 2
Helgon H2 Verbindung öffnen/schließen - Dauer, wann, wie lange? Datenbankprogrammierung 2
J Verbindung zu Access Datenbank Datenbankprogrammierung 15
J Verbindung zu Datenbank herstellen Datenbankprogrammierung 26
P MySQL Verbindung nach außen sehr langsam Datenbankprogrammierung 4
P JDBC Verbindung zur DB klappt nicht Datenbankprogrammierung 6
J Java - JDBC Verbindung zur Datenbank nicht möglich Datenbankprogrammierung 10
T MySQL Sichere Verbindung Datenbankprogrammierung 6
S Google Web Toolkit LDAP - Verbindung Datenbankprogrammierung 2
pg1337 Verbindung mit postgres - eclipse Datenbankprogrammierung 4
M Verbindung mit MSSQL hängt! Datenbankprogrammierung 2
cover1012 Derby/JavaDB Verbindung mit FTP-Server Datenbankprogrammierung 13
T NullPointerException bei Verbindung zur Datenbank Datenbankprogrammierung 4
J DB2 Verbindung zu AS400 Datenbankprogrammierung 6
F PostgreSQL JPA und Hibernate - Verbindung zur DB Datenbankprogrammierung 7
J MySQL Verbindung über JDBC scheitert immer Datenbankprogrammierung 2
M MySQL getConnection - Verbindung Problem Datenbankprogrammierung 2
T mdb Verbindung ohne Registrierung der Datenquelle im OS Datenbankprogrammierung 14
K MySQL Verbindung funktioniert in Netbeans aber .jar funktioniert nicht Datenbankprogrammierung 5
jeppi MySQL Design-Problem: DB-Verbindung herstellen und halten - JdbcRowSet / Idle-Timeout? Datenbankprogrammierung 9
S Hibernate in Verbindung mit Hsql Datenbankprogrammierung 2
D Oracle Verbindung mit Java zu Datenbank Datenbankprogrammierung 8
F MSSQL-Server Verbindung Datenbankprogrammierung 5
E Hibernate Problem bei bidirektionaler 1:n Verbindung Datenbankprogrammierung 2
DStrohma MS SQL Server 2005 + Java: Immer nur eine aktive Verbindung erlaubt? Datenbankprogrammierung 5
B JDBC Verbindung mit Postgresql Datenbankprogrammierung 13
U MSSQL Verbindung steht, aber meckert beim Statement Datenbankprogrammierung 2
G JDBC-Verbindung: User wechseln Datenbankprogrammierung 2
F Kann keine Verbindung mit HSQLDB aufbauen Datenbankprogrammierung 2
X JDBC Verbindung in einer Funktion Datenbankprogrammierung 9
O HSQLDB Verbindung schlägt fehl Datenbankprogrammierung 3
C DB2/AS400 Verbindung Datenbankprogrammierung 2
T Form, Verbindung Feld -> DB Datenbankprogrammierung 3
J Verbindung zur Datenbank schlägt fehl... Datenbankprogrammierung 2
C keine Verbindung zur MS-SQL-Datenbank mehr Datenbankprogrammierung 4
Y Keine verbindung mit der Datenbank Datenbankprogrammierung 2
G verbindung 2er Tabellen Datenbankprogrammierung 3
C Keine Verbindung Datenbankprogrammierung 12
G 2 Tabellen in einer 1:n Verbindung Datenbankprogrammierung 2
G Verbindung mit Eclipse auf Datenbank einrichten Datenbankprogrammierung 3
M Verbindung zu Oracle DB Datenbankprogrammierung 4
U *.mdb Datenbank Verbindung mit Pfadangabe Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben