Ssh

Aus CodicaTipps
Version vom 14. Mai 2014, 20:21 Uhr von Codica (Diskussion | Beiträge) (→‎SSH-Client für Handys)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Allgemeines

SSH bietet standardmäßig einen verschlüsselten Konsolenzugang von einem entfernten Computer. Der Standardport ist 22[1].

Sicherheit

SSH bietet einen sehr sicheren Zugang zu einem Server. Allerdings muss man auch hier die Sicherheitslücken möglichst gering halten.

X-Anwendungen über SSH nutzen

  • ssh unterstützt das Laufenlassen von graphischen X-Programmen über den einfachen Befehl:
  
    ssh -X user@ip-adresse
  
  • Voraussetzung auf dem Computer, der die X-Befehle erzeugt, ist allerdings, dass in der Datei /etc/ssh/sshd_config folgende Zeile enthalten ist:
  
    X11Forwarding yes
    X11UseLocalhost no # This is sometimes necessary!
  

Nach der Änderung wird der SSH-Server (Daemon) folgendermaßen neugestartet:

  
    /etc/init.d/sshd restart
  

SSH unter Windows

SSH-Windows-Client

PuTTY

Zugriff auf SSH-(Linux)-Server (einschl. GUI)

via WinSCP

Mit WinSCP lässt sich einfach auf andere Dateien zugreifen.

via CygWin
  • CygWin installieren (inklusive openssh-Modul)
  • Los geht's:
 ssh user@ip-adresse
  • Um X-Anwendungen zu starten:
    1. zusätzlich CygWin-Modul für X installieren
    2. in der CygWin-Shell folgendes eingeben:
 
 export DISPLAY=:0.0
 X &
 ssh -X user@ip-adresse
 kde
 

user ist der Name des Nutzers auf dem entfernten Rechner ip-adresse die IP-Adresse des entfernten Rechners. Im Beispiel wird davon ausgegangen, dass KDE auf dem entfernten Rechner installiert ist und mit kde aufgerufen werden kann.

Den Gnome Display Manager kann man auch via SSH starten und X weiterleiten. Die Alternative ist die Benutzung von x11vnc, getunnelt mittels ssh und damit VNC statt X

SSH-Windows-Server

freeSSHd

CygWin-SSH-Server

Datei-Zugriff

Zugriff unter KDE (z.B. Konqueror) über SSH

Unter Linux kann auf die Dateien eines entfernten Rechners recht einfach zugegriffen werden: Einfach

 fish://user@remoteIP

in die Konqueror- oder eine andere Adressleiste eingeben. user ist dabei der Login-Name auf dem entfernten Rechner.

Kopieren mit scp

Ansonsten hilft das Programm scp, das mit ssh mitgeliefert wird:

 scp -p source.dat user@ip-adresse:destination.dat

Der Schalter -p sorgt dafür, dass insbesondere das Änderungsdatum erhalten bleibt.

SSH ohne Passwortabfrage

SSH bietet mehrere Authentifizierungsmöglichkeiten.[2] Sehr einfach zu nutzen ist - neben der Passwortabfrage - der Public-Key-Modus. Dazu muss man auf dem SSH-Client

 ssh-keygen

ohne Parameter starten und alle Abfragen mit einem simplen Return bestätigen.


Dann kopiert man die dadurch erzeugte Datei ~/.ssh/id_rsa.pub mit dem öffentlichen Schlüssel vom Client auf den Server und nennt sie dort ~/.ssh/authorized_keys:

 scp ~/.ssh/id_rsa.pub ssh-server.de:.ssh/authorized_keys

Falls ~/.ssh/authorized_keys auf dem Server bereits existiert, kann man den Inhalt der Datei ~/.ssh/id_rsa.pub auch anhängen; dann funktionieren die bisherigen Einwahl-Möglichkeiten weiter. Beim nächsten Einloggen vom Client auf den Server wird man nicht mehr nach dem Passwort gefragt!

Eine Kurzform für das Kopieren und Anfügen bietet folgender Befehl:

 ssh-copy-id user@ssh-server.de

SSH ohne known hosts-Abfrage

Durch Hinzufügen der Optionen

 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

als Parameter für SSH wird das Host-Key-Checking von SSH umgangen, Risiko: Das ermöglicht Man-in-the-Middle-Attacken.

Siehe auch diese Erläuterung des Host-Key-Checkings.

SSH hinter Firewall

Mithilfe von SSH-reverse-Tunnels kann man eine Firewall vor dem Remote-Rechner zu Hause H überwinden. Auf diesen kann man von einem Computer im Internet I folgendermaßen zugreifen: Auf Rechner H Folgendes (z.B. als Cron-Job) ausführen (SSH-Reverse-Tunnel einrichten):

 ssh -C -f -N -R2222:localhost:22 ip.of.I

Auf Rechner I kann man dann auf H folgendermaßen zugreifen:

 ssh -p 2222 localhost

Dabei bitte Passwort des entfernten Rechners angeben, obwohl das des localhost angefordert wird.

Sitzt man selbst hinter einer Firewall am Rechner in der Arbeit A, hat aber einen Rechner I im Internet zur Verfügung muss mann zusätzlich zum obigen Einrichten eines Reverse-Tunnels von H zu I noch einen Forward-Tunnel von A zu I einrichten[3]

 ssh -C -f -N -L2223:localhost:2222 ip.of.I

Dann kann man von Rechner A (über I) auf H folgendermaßen zugreifen:

 ssh -p 2223 localhost


SSH-Client für Handys