Debian OpenSSH: Unterschied zwischen den Versionen
Erich (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Erich (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
=Installation= | ==Installation== | ||
Die Installation von OpenSSH ist relativ einfach: | Die Installation von OpenSSH ist relativ einfach: | ||
apt-get install openssh-server | apt-get install openssh-server | ||
Zeile 5: | Zeile 5: | ||
=Client Software= | ==Client Software== | ||
==Windows Client== | ===Windows Client=== | ||
Als Clients sind Putty und Winscp sehr empfehlenswert. | Als Clients sind Putty und Winscp sehr empfehlenswert. | ||
Zeile 12: | Zeile 12: | ||
*Winscp ist ähnlich eines FTP-Programms, vor allem auf Mausbedienung ausgelegt. Es ist aber auch relativ einfach möglich, Konfigurationsdateien mit einem Windowskonformen Editor einfacher als mit dem rudimentären vi, zu bearbeiten. Es ist auch einfach möglich, Datein per Drag&Drop zwischen Windows-PC und Linux hin und her zu kopieren. | *Winscp ist ähnlich eines FTP-Programms, vor allem auf Mausbedienung ausgelegt. Es ist aber auch relativ einfach möglich, Konfigurationsdateien mit einem Windowskonformen Editor einfacher als mit dem rudimentären vi, zu bearbeiten. Es ist auch einfach möglich, Datein per Drag&Drop zwischen Windows-PC und Linux hin und her zu kopieren. | ||
===Putty=== | ====Putty==== | ||
Download von Putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html | Download von Putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html | ||
Hinweis | {{Hinweis|Am einfachsten zu installieren ist die Windows-Installer Version. Also diese downloaden.}} | ||
Den Anweisungen des Installers folgen um Putty zu installieren. | Den Anweisungen des Installers folgen um Putty zu installieren. | ||
===WinSCP=== | ====WinSCP==== | ||
Download von WinSCP: http://winscp.net/eng/download.php | Download von WinSCP: http://winscp.net/eng/download.php | ||
Zur Installation den Anweisungen des Setup-Programms folgen. | Zur Installation den Anweisungen des Setup-Programms folgen. | ||
Hinweis | {{Hinweis|Während der Installation wird nach dem gewünschten User Interfaface gefragt. Es steht zur Wahl: | ||
Während der Installation wird nach dem gewünschten User Interfaface gefragt. Es steht zur Wahl: | |||
*Norton Explorer Imitation: Zwei Dateifenster. Linkes Fenster: Lokale Windows Verzeichnisse. Rechtes Fenster: Remote (Debian Server) Directory | *Norton Explorer Imitation: Zwei Dateifenster. Linkes Fenster: Lokale Windows Verzeichnisse. Rechtes Fenster: Remote (Debian Server) Directory | ||
*Windows Explorer Style: Verzeichnisbaum und Dateifenster des Debian Servers. Kein lokales Fenster für Windows files. | *Windows Explorer Style: Verzeichnisbaum und Dateifenster des Debian Servers. Kein lokales Fenster für Windows files.}} | ||
==Linux Client== | ===Linux Client=== | ||
===Kommandozeilen Tool=== | ====Kommandozeilen Tool==== | ||
Unter jeder gängigen Linuxdistribution sollte bereits ein SSH-Client installiert sein. Mit dem Befehl | Unter jeder gängigen Linuxdistribution sollte bereits ein SSH-Client installiert sein. Mit dem Befehl | ||
ssh IP_Des_Server | ssh IP_Des_Server | ||
Zeile 34: | Zeile 33: | ||
===Putty=== | ====Putty==== | ||
Putty steht auch für Linux zur Verfügung. Die Installation unterscheidet sich je nach verwendeter Distribution. | Putty steht auch für Linux zur Verfügung. Die Installation unterscheidet sich je nach verwendeter Distribution. | ||
Unter Ubuntu z.B. das Paket putty mittels Synaptic installieren. | Unter Ubuntu z.B. das Paket putty mittels Synaptic installieren. | ||
{{ | {{Hinweis| | ||
Zum Einfügen eines Textes aus der Zwischenablage dient - im Gegensatz zur Windowsversion von Putty - die mittlere Maustaste.}} | |||
=Funktions Test= | ==Funktions Test== | ||
==Putty== | ===Putty=== | ||
Um Putty und die SSH-Verbindung zu testen, folgende Schritte durchführen: | Um Putty und die SSH-Verbindung zu testen, folgende Schritte durchführen: | ||
*Putty starten | *Putty starten | ||
Zeile 55: | Zeile 54: | ||
==WinSCP== | ===WinSCP=== | ||
Um WinSCP und die SSH-Verbindung zu testen, folgende Schritte durchführen: | Um WinSCP und die SSH-Verbindung zu testen, folgende Schritte durchführen: | ||
*WinSCP starten | *WinSCP starten | ||
Zeile 64: | Zeile 63: | ||
Password: root_pwd | Password: root_pwd | ||
File protocol: SCP oder SFTP | File protocol: SCP oder SFTP | ||
Hinweis | {{Hinweis| Wenn die Verbindungsdaten mittels Button "'''Save'''" gespeichert werden sollen, sollte aus Sicherheitsgründen hier kein Passwort eingegeben werden. Das Passwort wird dann später abgefragt.}} | ||
[[Bild:WinSCP-Login.JPG]] | [[Bild:WinSCP-Login.JPG]] | ||
Zeile 73: | Zeile 72: | ||
=Erweiterung: Zugang mittels Public Key= | ==Erweiterung: Zugang mittels Public Key== | ||
Es ist möglich, sich mittels sog. Public- und Private-Keys anzumelden. Dann entfällt die nötige Eingabe von User und Passwort. Zusätzlich wird die Sicherheit erhöht. Um Zugang zu erreichen ist der korrekte Schlüssel erforderlich anstatt "nur" eines Passwortes. Ein Passwort kann erraten werden, falls es nicht besonders sicher ist, bzw. durch | Es ist möglich, sich mittels sog. Public- und Private-Keys anzumelden. Dann entfällt die nötige Eingabe von User und Passwort. Zusätzlich wird die Sicherheit erhöht. Um Zugang zu erreichen ist der korrekte Schlüssel erforderlich anstatt "nur" eines Passwortes. Ein Passwort kann erraten werden, falls es nicht besonders sicher ist, bzw. durch Brute-Force Attacken ermittelt werden. Das Zertifikat kann zur Erhöhung der Sicherheit mit einem Passwort versehen werden. Im lokalen Netz ist dies eigentlich nicht unbedingt nötig. Wenn allerdings der Server via Internet per OpenSSH erreichbar sein soll ([[Debian_OpenSSH#Freigabe Internet|→ siehe hier]], dann ist es empfehlenswert ein Passwort zu vergeben. | ||
Der OpenSSH-Server verwendet den Public Key und der SSH-Client (Putty oder WinSCP zum Beispiel) authentifiziert sich als berechtigter User mit dem Private Key. Deshalb sollte der Private Key nie in fremde Hände geraten. | Der OpenSSH-Server verwendet den Public Key und der SSH-Client (Putty oder WinSCP zum Beispiel) authentifiziert sich als berechtigter User mit dem Private Key. Deshalb sollte der Private Key nie in fremde Hände geraten. | ||
==Generierung von Private und Public Key mittels Puttygen | ===Generierung von Private und Public Key mittels Puttygen=== | ||
*Start:Programme\Putty\Puttygen | *Start:Programme\Putty\Puttygen | ||
Zeile 88: | Zeile 87: | ||
*Mauszeiger solange bewegen, bis der eingeblendete Fortschrittsbalken komplett ausgefült ist | *Mauszeiger solange bewegen, bis der eingeblendete Fortschrittsbalken komplett ausgefült ist | ||
*Password vergeben (2x bei passphrase und confirm passphrase). Hinweis siehe einleteinder Absatz dieses Kapitels. | *Password vergeben (2x bei passphrase und confirm passphrase). Hinweis siehe einleteinder Absatz dieses Kapitels. | ||
*Private Key speichern, z.B. debian_private. | *Private Key speichern, z.B. debian_private.ppk | ||
*den Public Key (Feld "Public Key for pasting into OpenSSH authorized_keys file") komplett mit der Maus markieren und STRG-C drücken, um ihn ins Clipboard zu übertragen. | *den Public Key (Feld "Public Key for pasting into OpenSSH authorized_keys file") komplett mit der Maus markieren und STRG-C drücken, um ihn ins Clipboard zu übertragen. | ||
==Server konfigurieren== | ===Server konfigurieren=== | ||
*Folgendes Verzeichnis an der Console einrichten: | *Folgendes Verzeichnis an der Console einrichten: | ||
cd /root | cd /root | ||
Zeile 104: | Zeile 103: | ||
chmod og= authorized_keys | chmod og= authorized_keys | ||
==Putty konfigurieren== | ===Putty konfigurieren=== | ||
*Putty öffnen | *Putty öffnen | ||
*Konfigurationsdaten wie [[Debian_OpenSSH#Putty|→ hier]] beschrieben | *Konfigurationsdaten wie [[Debian_OpenSSH#Putty|→ hier]] beschrieben | ||
Zeile 117: | Zeile 116: | ||
Authenticating with public key "rsa-key-20080906" | Authenticating with public key "rsa-key-20080906" | ||
==WinSCP konfigurieren== | ===WinSCP konfigurieren=== | ||
*WinSCP öffnen | *WinSCP öffnen | ||
*Konfigurationsdaten wie [[Debian_OpenSSH#WinSCP|→ hier]] beschrieben | *Konfigurationsdaten wie [[Debian_OpenSSH#WinSCP|→ hier]] beschrieben | ||
Zeile 124: | Zeile 123: | ||
=Authorized Keys Only= | ==Freigabe Internet== | ||
Um via Internet auf den Server zugreifen zu können, muß im DSL-Ruter noch eine Portfreigabe/Portweiterleitung eingerichtet werden. dazu muß ein Port aus dem Internet an Port 22 des Servers weitergeleitet werden. Es empfiehlt sich, einen anderen Port als 22 (z.B. 2200) aus dem Internet zu verwenden, da er dann bei Standard Portscans evtl. unbeachtet bleibt. Dies erhöht die Sicherheit vor Attacken aus dem Internet. Generell sollte ein sehr sicheres Passwort verwendet werden, noch besser Authentifizierung mittels [[Debian_OpenSSH#Erweiterung: Zugang mittels Public Key|→ Public/Private Key]] mit sicherer Passwort Phrase (und abgeschalteter [[Debian_OpenSSH#Authorized Keys Only|→ Kennwortauthentifizierung]]), wenn ein Zugang aus dem Internet gewünscht wird. | |||
Webseite des Routers öffnen und eine Portweiterleitung mit folgenden Daten einrichten: | |||
Name/Bezeichung der Weiterleitung: z.B. Debian_SSH | |||
Protokoll: TCP | |||
Von Port: z.B. 2200 | |||
An IP-Adresse: IP_des_Servers | |||
An Port: 22 | |||
==Authorized Keys Only== | |||
Trotz eingerichtetem [[Debian_OpenSSH#Erweiterung: Zugang mittels Public Key|→ Public-Key Verfahren]], kann die Authentifizierung nachwievor mittels Passwort oder deutlich sicherer mittels Public/Private Key-Verfahren. Nun kann die Authentifizierung mittels Passwort abgeschaltet werden, so dass nur noch Verbindungen mittels passendem Schlüssel möglich sind. Allerdings sollte bedacht werden, dass jeder, der im Besitz des Schlüssels ist, sich einloggen kann, falls kein Schlüssel-Passwortschutz vergeben wurde. Weiterhin sollte bedacht werden, dass falls der Private Key verloren gehen sollte, z.B. durch Festplatten-Crash der Berechtigte User auch keinen Zugriff mehr hat. Deshalb sollte der Private Key zusätzlich an einem sicheren Ort aufbewahrt werden. | Trotz eingerichtetem [[Debian_OpenSSH#Erweiterung: Zugang mittels Public Key|→ Public-Key Verfahren]], kann die Authentifizierung nachwievor mittels Passwort oder deutlich sicherer mittels Public/Private Key-Verfahren. Nun kann die Authentifizierung mittels Passwort abgeschaltet werden, so dass nur noch Verbindungen mittels passendem Schlüssel möglich sind. Allerdings sollte bedacht werden, dass jeder, der im Besitz des Schlüssels ist, sich einloggen kann, falls kein Schlüssel-Passwortschutz vergeben wurde. Weiterhin sollte bedacht werden, dass falls der Private Key verloren gehen sollte, z.B. durch Festplatten-Crash der Berechtigte User auch keinen Zugriff mehr hat. Deshalb sollte der Private Key zusätzlich an einem sicheren Ort aufbewahrt werden. | ||
Zeile 136: | Zeile 146: | ||
= | ==Authorized Keys (Internet) / Password (lokal)== | ||
Eine Mischform aus Passwort- und Authorized Keys Methode wird nun beschrieben. Ein Einloggen aus dem Internet ist nur mittels Private-Key möglich (kein Einloggen mit Debian Passwort möglioch), der wiederum Passwortgeschützt sein sollte (Hinweise siehe oben). Aus dem lokalen Netz heraus ist sowhol Private/Public-Key als auch Passwortverfahren möglich. | |||
Konfigfile editieren: | |||
vi /etc/ssh/sshd_config | |||
Passwortauthentication Global abschalten: | |||
PasswordAuthentication no | |||
Passwordauthentication aus dem lokalen Netzwerk erlauben (Dabei die ersten drei Stellen des Subnetzes ('''''192.168.0''''') an die eigene Netzwerkarchitektur anpassen): | |||
Match address '''''192.168.0.0/24''''' | |||
PasswordAuthentication yes | |||
==SSH-Tunnel== | |||
Mit einem sog. SSH-Tunnel kann man beliebige andere TCP/IP Verbindungen über die verschlüsselte SSH-Verbindung übertragen. So ist es beispielsweise möglich, das Webinterface eines Routers durch den SSH-Tunnel aus der Ferne aufzurufen, ohne dafür einen eigenen Port zu öffnen. Sinn macht ein SSH-Tunnel eigentlich nur, wenn SSH übers Internet zum Einsatz kommt. | |||
Ein SSH-Tunnel wird mit Putty initiert. Solange die Putty-Verbindung besteht, ist auch der SSH-Tunnel aktiv und kann benutzt werden. | |||
'''Aufbau eines SSH-Tunnels mit Putty:''' | |||
Als Beispiel soll das Webinterface der Fritzbox mit IP-Adresse 192.168.178.1 auf Port 80, die Zu Hause steht, durch den SSH-Tunnel von einem entfernten Internet-PC aus aufgerufen werden, auf dem Putty installiert ist: | |||
* Einstellungen wie für eine normale oder Private/Public-Key Verbindung | |||
* Zusätzlich: | |||
:* Im linken Baum Connection/SSH/Tunnels folgende Eingaben vornehmen | |||
::Source-Port: beliebiger Port auf dem lokalen PC, über den der Tunnel angesprochen werden soll - z.B: 3000 | |||
::Destination: IP-Adresse:Port im Zielnetz - z.B 192.168.178.1:80 | |||
:* Button '''''Add''''' anklicken | |||
:* Evtl. weitere Tunnels auf identische Art und Weise einfügen. | |||
* Evtl. die Session abspeichern | |||
* Button '''''Open''''' anklicken | |||
* Evtl. Username und Passwort eingeben, falls nicht Private/Public-Key Verfahren zum Einsatz kommt. | |||
'''Benutzung des Tunnels:''' | |||
Webbrowser öffnen und als Adresse http://localhost:3000 eingeben. | |||
Die Webseite der entfernten Fritzbox sollte nun angezeigt werden. | |||
==Problembehebung: Identification Changed== | |||
Wenn beim Zugriff (von einen Linux-Client aus) auf einen entfernten SSH-Server die Fehlermeldung "''Remote Host Identification Has Changed''" erscheint, verwendet der Server einen anderen/neuen Key, als der im Client gespeicherte. Dies liegt höchst wahrscheinlich daran, dass der entfernte Server neu installiert wurde, und deshalb einen geänderten Key verwendet. Um eine Verbindung zu ermöglichen, wird der betreffende Key auf dem Client gelöscht und anschließend kann sich der Client wieder verbinden. | |||
ssh-keygen -R '''''IP_des_Server''''' | |||
Verbindung vom Client zum Server aufbauen. | |||
Aktuelle Version vom 28. Februar 2011, 06:46 Uhr
Installation
Die Installation von OpenSSH ist relativ einfach:
apt-get install openssh-server
(Die Frage nach evtl. fehlenden Abhängigkeiten mit j beantworten.
Client Software
Windows Client
Als Clients sind Putty und Winscp sehr empfehlenswert.
- Putty empfiehlt sich vor allem für alle Administrationsaufgaben auf der Kommandozeilenebene.
- Winscp ist ähnlich eines FTP-Programms, vor allem auf Mausbedienung ausgelegt. Es ist aber auch relativ einfach möglich, Konfigurationsdateien mit einem Windowskonformen Editor einfacher als mit dem rudimentären vi, zu bearbeiten. Es ist auch einfach möglich, Datein per Drag&Drop zwischen Windows-PC und Linux hin und her zu kopieren.
Putty
Download von Putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Hinweis: | |
Am einfachsten zu installieren ist die Windows-Installer Version. Also diese downloaden. |
Den Anweisungen des Installers folgen um Putty zu installieren.
WinSCP
Download von WinSCP: http://winscp.net/eng/download.php Zur Installation den Anweisungen des Setup-Programms folgen.
Linux Client
Kommandozeilen Tool
Unter jeder gängigen Linuxdistribution sollte bereits ein SSH-Client installiert sein. Mit dem Befehl
ssh IP_Des_Server
kann eine SSH-Verbindung zu einem SSH-Server aufgebaut werden.
Putty
Putty steht auch für Linux zur Verfügung. Die Installation unterscheidet sich je nach verwendeter Distribution. Unter Ubuntu z.B. das Paket putty mittels Synaptic installieren.
Hinweis: | |
Zum Einfügen eines Textes aus der Zwischenablage dient - im Gegensatz zur Windowsversion von Putty - die mittlere Maustaste. |
Funktions Test
Putty
Um Putty und die SSH-Verbindung zu testen, folgende Schritte durchführen:
- Putty starten
- Folgende Einstellungen vornehmen:
Protokoll SSH (Standardmäßig angewählt) Port 22 (Standard für SSH) Hostname: IP_des_Servers
- Button Open anklicken
- Im sich öffnenden Fenster User: root und Passwort: root_Passwort eingeben
WinSCP
Um WinSCP und die SSH-Verbindung zu testen, folgende Schritte durchführen:
- WinSCP starten
- Folgende Einstellungen vornehmen:
Hostname: IP_des_Servers Port Number: 22 User Name: root Password: root_pwd File protocol: SCP oder SFTP
Hinweis: | |
Wenn die Verbindungsdaten mittels Button "Save" gespeichert werden sollen, sollte aus Sicherheitsgründen hier kein Passwort eingegeben werden. Das Passwort wird dann später abgefragt. |
- Button Login drücken
- Beim ersten Connect zum Server erscheint eine Warnung, dass der verwendete Schlüssel nicht in der Datenbank von WinSCP zu finden sei. Button Yes anklicken.
- Passwort des Users root eingeben, falls nicht bereits im Schritt 2 erfolgt
- Das Verzeichnis root wird angezeigt
Erweiterung: Zugang mittels Public Key
Es ist möglich, sich mittels sog. Public- und Private-Keys anzumelden. Dann entfällt die nötige Eingabe von User und Passwort. Zusätzlich wird die Sicherheit erhöht. Um Zugang zu erreichen ist der korrekte Schlüssel erforderlich anstatt "nur" eines Passwortes. Ein Passwort kann erraten werden, falls es nicht besonders sicher ist, bzw. durch Brute-Force Attacken ermittelt werden. Das Zertifikat kann zur Erhöhung der Sicherheit mit einem Passwort versehen werden. Im lokalen Netz ist dies eigentlich nicht unbedingt nötig. Wenn allerdings der Server via Internet per OpenSSH erreichbar sein soll (→ siehe hier, dann ist es empfehlenswert ein Passwort zu vergeben.
Der OpenSSH-Server verwendet den Public Key und der SSH-Client (Putty oder WinSCP zum Beispiel) authentifiziert sich als berechtigter User mit dem Private Key. Deshalb sollte der Private Key nie in fremde Hände geraten.
Generierung von Private und Public Key mittels Puttygen
- Start:Programme\Putty\Puttygen
- Parameters: 1024 bit / Type=SSH
- Button "Generate" anklicken.
- Mauszeiger solange bewegen, bis der eingeblendete Fortschrittsbalken komplett ausgefült ist
- Password vergeben (2x bei passphrase und confirm passphrase). Hinweis siehe einleteinder Absatz dieses Kapitels.
- Private Key speichern, z.B. debian_private.ppk
- den Public Key (Feld "Public Key for pasting into OpenSSH authorized_keys file") komplett mit der Maus markieren und STRG-C drücken, um ihn ins Clipboard zu übertragen.
Server konfigurieren
- Folgendes Verzeichnis an der Console einrichten:
cd /root mkdir .ssh chmod og= .ssh cd .ssh
- Den Public Key an den Server per Copy&Paste via clipboard und Putty übertragen.
vi authorized_keys
- <rechte Maustaste> betätigen, um den eben kopierten Public Key einzufügen
- File abspeichern und editor beenden
- Die Zugriffsrechte des Pubic Key anpassen:
chmod og= authorized_keys
Putty konfigurieren
- Putty öffnen
- Konfigurationsdaten wie → hier beschrieben
- Zusätzlich im Bereich Connection/SSH/Auth (linker Options-Baum) das eben erstellte Private Key File ("Private key file for authentification") auswählen.
- Zusätzlich im Bereich Connection/Data (linker Options-Baum) User root als Auto-login username eintragen
- Open anklicken
- Im sich öffnenden Fenster sollte erscheinen 'Using username "root".'
- Es sollte keine normale Passwortabfrage wie vor der Einrichtung des Public Key-Verfahrens erscheinen, sondern:
- Falls bei der Generierung des Keys in Puttygen ein Passwort vergeben wurde, wird dies hier abgefragt (Ausgabe in der Form):
Passphrase for key "rsa-key-20080906":
- Nun sollte eine Ausgabe in der Form erscheinen:
Authenticating with public key "rsa-key-20080906"
WinSCP konfigurieren
- WinSCP öffnen
- Konfigurationsdaten wie → hier beschrieben
- Zusätzlich: untere Private Keyfile den eben erstellten Private Key auswählen
- login anklicken
Freigabe Internet
Um via Internet auf den Server zugreifen zu können, muß im DSL-Ruter noch eine Portfreigabe/Portweiterleitung eingerichtet werden. dazu muß ein Port aus dem Internet an Port 22 des Servers weitergeleitet werden. Es empfiehlt sich, einen anderen Port als 22 (z.B. 2200) aus dem Internet zu verwenden, da er dann bei Standard Portscans evtl. unbeachtet bleibt. Dies erhöht die Sicherheit vor Attacken aus dem Internet. Generell sollte ein sehr sicheres Passwort verwendet werden, noch besser Authentifizierung mittels → Public/Private Key mit sicherer Passwort Phrase (und abgeschalteter → Kennwortauthentifizierung), wenn ein Zugang aus dem Internet gewünscht wird.
Webseite des Routers öffnen und eine Portweiterleitung mit folgenden Daten einrichten:
Name/Bezeichung der Weiterleitung: z.B. Debian_SSH Protokoll: TCP Von Port: z.B. 2200 An IP-Adresse: IP_des_Servers An Port: 22
Authorized Keys Only
Trotz eingerichtetem → Public-Key Verfahren, kann die Authentifizierung nachwievor mittels Passwort oder deutlich sicherer mittels Public/Private Key-Verfahren. Nun kann die Authentifizierung mittels Passwort abgeschaltet werden, so dass nur noch Verbindungen mittels passendem Schlüssel möglich sind. Allerdings sollte bedacht werden, dass jeder, der im Besitz des Schlüssels ist, sich einloggen kann, falls kein Schlüssel-Passwortschutz vergeben wurde. Weiterhin sollte bedacht werden, dass falls der Private Key verloren gehen sollte, z.B. durch Festplatten-Crash der Berechtigte User auch keinen Zugriff mehr hat. Deshalb sollte der Private Key zusätzlich an einem sicheren Ort aufbewahrt werden.
Voraussetzung: → Zugang mittels Public Key Abschnitt erfolgreich durchgeführt
Abschaltung der klassischen Passwort Authentifizierung:
vi /etc/ssh/sshd_config
Folgenden Eintrag ändern und evtl. auskommentieren (# Zeichen entfernen):
PasswordAuthentication no
Authorized Keys (Internet) / Password (lokal)
Eine Mischform aus Passwort- und Authorized Keys Methode wird nun beschrieben. Ein Einloggen aus dem Internet ist nur mittels Private-Key möglich (kein Einloggen mit Debian Passwort möglioch), der wiederum Passwortgeschützt sein sollte (Hinweise siehe oben). Aus dem lokalen Netz heraus ist sowhol Private/Public-Key als auch Passwortverfahren möglich.
Konfigfile editieren:
vi /etc/ssh/sshd_config
Passwortauthentication Global abschalten:
PasswordAuthentication no
Passwordauthentication aus dem lokalen Netzwerk erlauben (Dabei die ersten drei Stellen des Subnetzes (192.168.0) an die eigene Netzwerkarchitektur anpassen):
Match address 192.168.0.0/24 PasswordAuthentication yes
SSH-Tunnel
Mit einem sog. SSH-Tunnel kann man beliebige andere TCP/IP Verbindungen über die verschlüsselte SSH-Verbindung übertragen. So ist es beispielsweise möglich, das Webinterface eines Routers durch den SSH-Tunnel aus der Ferne aufzurufen, ohne dafür einen eigenen Port zu öffnen. Sinn macht ein SSH-Tunnel eigentlich nur, wenn SSH übers Internet zum Einsatz kommt.
Ein SSH-Tunnel wird mit Putty initiert. Solange die Putty-Verbindung besteht, ist auch der SSH-Tunnel aktiv und kann benutzt werden.
Aufbau eines SSH-Tunnels mit Putty:
Als Beispiel soll das Webinterface der Fritzbox mit IP-Adresse 192.168.178.1 auf Port 80, die Zu Hause steht, durch den SSH-Tunnel von einem entfernten Internet-PC aus aufgerufen werden, auf dem Putty installiert ist:
- Einstellungen wie für eine normale oder Private/Public-Key Verbindung
- Zusätzlich:
- Im linken Baum Connection/SSH/Tunnels folgende Eingaben vornehmen
- Source-Port: beliebiger Port auf dem lokalen PC, über den der Tunnel angesprochen werden soll - z.B: 3000
- Destination: IP-Adresse:Port im Zielnetz - z.B 192.168.178.1:80
- Button Add anklicken
- Evtl. weitere Tunnels auf identische Art und Weise einfügen.
- Evtl. die Session abspeichern
- Button Open anklicken
- Evtl. Username und Passwort eingeben, falls nicht Private/Public-Key Verfahren zum Einsatz kommt.
Benutzung des Tunnels:
Webbrowser öffnen und als Adresse http://localhost:3000 eingeben. Die Webseite der entfernten Fritzbox sollte nun angezeigt werden.
Problembehebung: Identification Changed
Wenn beim Zugriff (von einen Linux-Client aus) auf einen entfernten SSH-Server die Fehlermeldung "Remote Host Identification Has Changed" erscheint, verwendet der Server einen anderen/neuen Key, als der im Client gespeicherte. Dies liegt höchst wahrscheinlich daran, dass der entfernte Server neu installiert wurde, und deshalb einen geänderten Key verwendet. Um eine Verbindung zu ermöglichen, wird der betreffende Key auf dem Client gelöscht und anschließend kann sich der Client wieder verbinden.
ssh-keygen -R IP_des_Server
Verbindung vom Client zum Server aufbauen.