update
This commit is contained in:
parent
15bac35622
commit
31ebf01b0b
@ -94,29 +94,23 @@ Dies ist z.B. nützlich, wenn man 2 WSL-Instanzen am Laufen hat, und man mit ssh
|
||||
|
||||
Verbindung von WSL A nach B: `ssh user@localhost -p 2222`. Nicht vergessen, den public key in `authorized_keys` von WSL B hinterlegen.
|
||||
|
||||
## SSH Tunnel
|
||||
## Local Port Forwarding
|
||||
|
||||
### Remote Port Forwarding
|
||||
|
||||
[SSH Remote Port Forwarding](https://gitlab.com/armindoerzbachtbz/cloud-native-bootcamp/-/blob/main/ssh/N2/ssh_remote_port_forwarding.md)
|
||||
|
||||
### Local Port Forwarding
|
||||
|
||||
Hier wird ein Port auf dem Host A verwendet, um auf einen Dienst auf einem Remote Host B zugreifen zu können, der ansonsten nicht von aussen erreichbar wäre.
|
||||
Hier wird ein Port auf dem Laptop verwendet, um auf einen Dienst auf einem Remote Host B zugreifen zu können, der ansonsten nicht von aussen erreichbar wäre.
|
||||
|
||||
Annahme: Auf dem Host B ist ein Dienst installiert, den man nur von dort aus erreichen kann. Z.B. läuft dort mysql auf Port 3306, aber Remote-Verbindungen sind nicht erlaubt (Achtung myql kann so eingerichtet sein, dass es eh nicht geht, weil über socks file... aber ist eine andere Geschichte.)
|
||||
|
||||
Mit folgendem SSH-Befehl kann dies umgangen werden:
|
||||
|
||||
```
|
||||
ssh -L [local_port]:[destination_address]:[destination_port] [username]@[ssh_server]
|
||||
ssh -L 33333:127.0.0.1:3306 rogrut@v2202306200871231373.supersrv.de
|
||||
```
|
||||
`33333` ist der lokale Port auf Host A. Als Verbindungsparameter in mysql workbench würde man 127.0.0.1:33333 angeben. `127.0.0.1:3306` ist mysql, der auf dem Host B läuft - von dort her gesehen auf localhost, also 127.0.0.1. `rogrut@v2202306200871231373.supersrv.de` schliesslich ist Benutzername und Adresse des Hosts.
|
||||
Dabei wird man auch gleich auf dem Server engeloggt. In einem zweiten Terminal von Host A kann man dann über den lokalen Port auf den Dienst auf Host B zugreiffen.
|
||||
|
||||
Auf dem Host A ist somit `127.0.0.1:33333` gleichbedeutend wie auf dem Host B mit `127.0.0.1:3306`. So können Firewalls umgangen werden, weil `v2202306200871231373.supersrv.de:3306` nicht geöffnet ist.
|
||||
`33333` ist der lokale Port auf dem Laptop. Als Verbindungsparameter in mysql workbench würde man 127.0.0.1:33333 angeben. `127.0.0.1:3306` ist mysql, der auf dem Host B läuft - von dort her gesehen auf localhost, also 127.0.0.1. `rogrut@v2202306200871231373.supersrv.de` schliesslich ist Benutzername und Adresse des Hosts B.
|
||||
Dabei wird man auch gleich auf dem Server engeloggt. In einem zweiten Terminal vom Laptop kann man dann über den lokalen Port auf den Dienst auf Host B zugreiffen.
|
||||
|
||||
Sobald die Verbindung steht, kann auf dem Host A eine Verbindung zu mysql auf Host B hergestellt werden.
|
||||
Auf dem Laptop ist somit `127.0.0.1:33333` gleichbedeutend wie auf dem Host B mit `127.0.0.1:3306`. So können Firewalls umgangen werden, weil `v2202306200871231373.supersrv.de:3306` nicht geöffnet ist.
|
||||
|
||||
Es wären auch Verbindungen zu mysql DBs möglich, die in Docker laufen, z.B. unter `63003`, oder sogar unter anderen IPs.
|
||||
|
||||
@ -128,7 +122,7 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS
|
||||
ssh -L 33333:127.0.0.1:63003 rogrut@v2202306200871231373.supersrv.de
|
||||
```
|
||||
|
||||
#### Port öffnen ohne Login in Shell
|
||||
### Port öffnen ohne Login in Shell
|
||||
Um zu verhindern, dass man eingeloggt wird, also nur den Port 33333 zu öffnen, müssen noch zusätzliche Parameter angegeben werden: `-LNf`, also `ssh -LNf 33333:127.0.0.1:3306 rogrut@v2202306200871231373.supersrv.de`
|
||||
|
||||
Nicht vergessen den Port wieder zu schliessen.
|
||||
@ -153,6 +147,15 @@ und dann Prozess killen:
|
||||
kill 9973
|
||||
```
|
||||
|
||||
## Remote Port Forwarding
|
||||
Auch bekannt als "reverse tunneling", um von einem Host B eine sichere Verbindung auf einem lokalen Computer zu machen. Traffic wird von einem spezifischen port auf Host B an einen bestimmten Port auf dem Laptop geleitet.
|
||||
|
||||
To initiate remote port forwarding, the user configures an SSH connection to the remote server with the -R option followed by the forwarding specifications. The syntax for setting up remote port forwarding is:
|
||||
|
||||
```
|
||||
ssh -R [remote_port]:[destination_address]:[local_port] [username]@[ssh_server]
|
||||
```
|
||||
|
||||
## Dynamic Port Forwarding
|
||||
|
||||
### SSH Socks Proxy
|
||||
|
||||
Loading…
Reference in New Issue
Block a user