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.
|
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
|
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.
|
||||||
|
|
||||||
[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.
|
|
||||||
|
|
||||||
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.)
|
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:
|
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
|
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.
|
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
|
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`
|
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.
|
Nicht vergessen den Port wieder zu schliessen.
|
||||||
@ -153,6 +147,15 @@ und dann Prozess killen:
|
|||||||
kill 9973
|
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
|
## Dynamic Port Forwarding
|
||||||
|
|
||||||
### SSH Socks Proxy
|
### SSH Socks Proxy
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user