Projekt

Allgemein

Profil

Howto ssh » Historie » Version 3

Jeremias Keihsler, 04.01.2020 23:32

1 1 Jeremias Keihsler
h1. ssh
2
3
*ssh* is installed by default
4
5
h2. basic ssh usage
6
7
the most *nix-style way of getting help for @ssh@ is @man ssh@. 
8
I assume that the @ssh@ port is @22@ and the involved firewalls are setup accordingly.
9
<pre><code class="bash">
10
ssh user@example.com
11
</code></pre>
12
13
h2. ssh usage through another machine
14
15
What if you can't reach a machine directly but through a machine in between?
16
17
Of course you could @ssh@ twice, more compact form is:
18
<pre><code class="bash">
19
ssh -t user@reachable ssh user@unreachable
20
</code></pre>
21 2 Jeremias Keihsler
22 1 Jeremias Keihsler
h2. X-session access
23
24
<pre><code class="bash">
25
ssh -X user@example.com
26
</code></pre>
27
starting a X-program inside the remote shell will bring up a local X-window.
28
<pre><code class="bash">
29
baobab
30
</code></pre>
31 2 Jeremias Keihsler
32 1 Jeremias Keihsler
h2. Port forwarding to local machine
33
34
the following command will forward port 3390 (e.g. @vrpd@) on @example.com@ to local 3501.
35
36
This is useful when a given port is only accessible local on a remote machine but not accessible from outside.
37
<pre><code class="bash">
38
ssh -L 3501:localhost:3390 user@example.com
39
</code></pre>
40
now you can connect to the e.g. remote @vrdp@-session by simply on your local machine.
41
<pre><code class="bash">
42
rdesktop-vrdp -kde localhost:3501
43
</code></pre>
44 3 Jeremias Keihsler
45
h2. "dynamic tunnel port" for use as socks.proxy
46
47
Ein virtuelles Privates Netzwerk (VPN) bindet entfernte Nutzer über das Internet in ein lokales Netzwerk ein. Das geschieht im Allgemeinen transparent, d.h. für die Nutzerinnen und Nutzer sieht es so aus, als ob sie sich beispielsweise im Uni-Netz befinden. Alle Netzdienste in einem Firmen- Heim- oder Universitätsnetz können dann unterwegs so genutzt werden, als ob man vor Ort wäre. Sehr häufig geht es aber nur um einen einzigen Netzdienst, nämlich das Web. An der Universität Duisburg-Essen werden viele Dinge heute webbasiert erledigt. Allerdings erfordern viele Seiten, dass sich der Nutzer im IP-Adressbereich der Uni befindet. Warum also ein vollständiges VPN verwenden, wenn eigentlich nur die Verbindungen über die Ports 80 (http) und 443 (https) genutzt werden? Eine Möglichkeit http- und https-Verbindungen umzuleiten ist ein Web-Proxy, der auf Protokollebene zwischen dem Browser und dem Web vermittelt. Dazu muss aber ein dezidierter Proxy-Server betrieben werden, der von außerhalb des Uni-Netzes zugänglich ist. Alternativ realisiert ein sogenannter Socks-Proxy so etwas auf Socket-Ebene also über TCP/IP Ports.
48
49
Ein Tunnel sie alle zu knechten …
50
51
Alle aktuelle Browser unterstützen die Verbindung auch über einen Socks-Proxy. Wer Login-Zugriff per SSH auf einen Rechner in dem Zielnetz hat, kann sehr einfach einen Socks-Proxy per SSH-Tunnel realisieren. Das ist beispielsweise an der Universität Duisburg-Essen für alle Nutzer der Fall. Alle Mitarbeiter haben mit ihrer Unikennung Zugriff auf staff.uni-due.de und alle Studierende können die Maschine student.uni-due.de mit ihrer Kennung nutzen.
52
53
Linux/MacOS/Unix:
54
55
Unter unixoiden Betriebsystemen wie Linux und MacOS geht das sehr einfach mit Bordmitteln auf der Kommandozeile (hier mit staff.uni-due.de für Mitarbeiter):
56
57
<pre><code class="bash">
58
ssh -N -D2000 user@example.com
59
</code></pre>
60
61
Der Parameter -N verhindert hier den Aufbau einer interaktiven Shell-Verbindung. Der Parameter -D gibt den lokalen Zugriffsport für den dynamischen Tunnel an. Diesen Port wählt man unter Unix geschickter Weise oberhalb von 1023, damit keine Root-Rechte erforderlich sind.
62
63
!Firefox_SocksProxy_settings.png!