Ssh
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
Sollen auch X-Anwendungen auf dem Remote-Rechner als Root ausgeführt werden (und man sich aus Sicherheitsgründen nicht als root mit dem Remote-Rechner verbinden will), muss das beim Einloggen erstellte .Xauthority-File zum User root kopiert werden:[2]
sudo cp ~/.Xauthority ~root/ sudo chown root ~root/.Xauthority
SSH unter Windows
SSH-Windows-Client
PuTTY
- PuTTY ist ein plattformübergreifender SSH-Client.
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:
- zusätzlich CygWin-Modul für X installieren
- 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
- freeSSHd ist ein Open Source SSH Server für Windows.
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.[3] 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.
Man kann dies für spezifische Hosts auch dauerhaft in der (notfalls anzulegenden) Datei /home/USER/.shh/config
festlegenReferenzfehler: Für ein <ref>
-Tag fehlt ein schließendes </ref>
-Tag.
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
- ConnectBot für Android
- SSH-Client-Midlet