# Mysql port forwarding



## Hansel (26. Feb 2011)

Und zwar ich möchte mich auf einen mysql server über einen SSH Tunnel verbinden dazu nutze ich die Bibliothek JSch - Java Secure Channel. Ich kann mich zwar zu den server connecten jedoch das mit dem port forwarden funktioniert nicht wirklich :/

Mein Code:

```
String sshHostname = hostNameSSH.getText();
            String sshPort = sshPortField.getText();
            String sshUsername = sshUsernameField.getText();
            String sshPass = new String(this.sshPassField.getPassword());
            JSch jsch=new JSch();
            Session session = jsch.getSession(sshUsername, sshHostname, Integer.parseInt(sshPort));
            session.setConfig("StrictHostKeyChecking", "no");
            if(sshAuthMethodBox.getSelectedIndex() == 1)
            {
                JTextField textField = this.fileChoosePanel.getTextField();
                String keyFile = textField.getText();
                String passphrase = new String(this.sshPassField.getPassword());
                jsch.addIdentity(keyFile, passphrase);
            }
            else
            {
                session.setPassword(sshPass);
            }
            session.connect();
            int lPort = Integer.parseInt(port);
            String rHost = sshHostname;
            int rPort = Integer.parseInt(port);
            int assinged_port = session.setPortForwardingL(lPort, rHost, rPort);
            System.out.println("localhost:"+assinged_port+" -> "+sshHostname+":"+rPort);
```

Die Daten werden einfach nicht weitergeleitet von z.b localhost:3306 auf mymsqlserver.com:3306 und ich komm einfach nicht drauf warum...

Ich habe auch schon testweise versucht einen forward von localhost:3306 auf httpserver:80 zu leiten,  wurde aber auch keine Seite im Browser angezeigt wenn ich auf localhost:3306 ging :/

Hoffe es kann mir geholfen werden.


----------



## kay73 (26. Feb 2011)

Kann natürlich an allen möglichen Ursachen liegen. Klappt denn der SSH Portforward in der Shell? 
	
	
	
	





```
ssh -f -L 3306:mymsqlserver.com:3306 localhost sleep 10
```
 Wenn nicht, erst mal mit 
	
	
	
	





```
-vvv
```
 checken. Das Portforwarding-Demo von JSch funktioniert bei mir.


----------



## Hansel (26. Feb 2011)

Ich sollte vielleicht erwähnen das ich gerade an einem Windows Rechner sitze, habe das port forwarding also mit putty vorgenommen, scheint auch nicht zu funktionieren... :/


----------



## Hansel (26. Feb 2011)

Ich hab das forwarden jetzt mal mit meinem linux rechner versucht und habe testweise mal von localhost:1234 auf myhttpserver:80 geforwarded als Nachricht bekam ich den Fehler:
"channel 3: open failed: administratively prohibited: open failed"


----------



## Gast2 (27. Feb 2011)

Du brauchst root-Rechte unter Linux um Server-Ports unter 1025 erstellen zu können


----------



## kay73 (27. Feb 2011)

mogel hat gesagt.:


> Du brauchst root-Rechte unter Linux um Server-Ports unter 1025 erstellen zu können


Hier nicht: Der Serverport ist auf localhost:1234. Wenn man dies hier als nicht-root absetzt
	
	
	
	





```
ssh -f -L 7777:www.google.de:80 localhost sleep 10
```
und im Browser 
	
	
	
	





```
http://localhost:7777
```
aufruft, muss Google erscheinen. 


Hansel hat gesagt.:


> "channel 3: open failed: administratively prohibited: open failed"


Ich vermute stark, daß in der sshd.conf 
	
	
	
	





```
AllowTcpForwarding
```


```
false
```
 ist, denn wenn ich mich recht erinnere, ist der Fehlerstring von sshd erzeugt.


----------

