Login
Login-Name Passwort


 
Newsletter
Werbung

So, 20. Mai 2007, 00:00

Home-Server mit Ubuntu 6.06 LTS, Teil 4

Von mmu

SSH-Zugang mit Keys

Bevor wir loslegen, kurz etwas zur Terminologie:

Von nun an ist fishbook mein Notebook bzw. der Client, fishbox mein normaler PC bzw. der Server.

Die erste Aktion, die wir vornehmen, ist die Einrichtung eines SSH-Zugangs. Dies wird uns nämlich erlauben, den PC bequem über einen Laptop zu administrieren - Bildschirm und Tastatur am Server selbst sind so nicht mehr nötig.

Dazu installieren wir den SSH-Server OpenSSH:

sudo apt-get update
sudo apt-get install openssh-server

Die automatische Abhängigkeitsprüfung wird nach einer Bestätigung der Installation fragen, wir bejahen.

Wichtige Konfigurationsdateien liegen in Linux in Normalfall im Verzeichnis /etc, so auch hier; der OpenSSH-Server wird über die Datei /etc/ssh/sshd_config konfiguriert. Diese kann man mit einem x-beliebigen Editor bearbeiten. Ich persönlich benutze dazu den sehr benutzerfreundlichen und leicht zu bedienenden Nano. Ein sudo apt-get install nano verrät uns, dass der Editor sogar schon standardmässig installiert ist, wir können also gleich loslegen.

sudo nano /etc/ssh/sshd_config

Hier noch ein kleiner Tipp am Rande: Natürlich ist es nicht nötig, immer die ganzen Pfade von Hand einzutippen. Die Shell Bash (und einige andere) kennen nämlich ein Feature namens Tab Completion - es reicht, /et[TAB]/ssh/ssh[TAB] einzugeben. Sobald es nur noch eine Option gibt, wird der Pfad automatisch vervollständigt. Gibt es noch mehrere Varianten, lassen sich diese bequem mit einem weiteren Druck auf die [TAB]-Taste auflisten.

Nun sind wir in Nano und sehen den Inhalt von /etc/ssh/sshd_config. Hier ändern wir vorerst die Zeile PermitRootLogin auf no und machen so aus Sicherheitsgründen ein direktes Einloggen als Root unmöglich. Wir speichern die Änderung mit Ctrl+O und verlassen Nano mit Ctrl+X.

Nun starten wir den SSH-Server neu:

fish@fishbox:~$ sudo /etc/init.d/ssh restart
 * Restarting OpenBSD Secure Shell server... [ ok ]

Damit der Server auch eindeutig ansprechbar ist, sollte man ihm eine feste interne Netzwerk-IP zuteilen. Ich persönlich mache das über den Router, gebunden an die MAC-Adresse. Alternativ kann man es aber auch über die Datei /etc/network/interfaces definieren (s. Manpage »interfaces«). Wir versuchen nun gleich mal, uns von einem Laptop im gleichen Netz auf dem Server einzuloggen. Dabei testen wir zuerst, ob sich der Server überhaupt anpingen lässt:

fish@fishbook:~$ ping 192.168.0.175
PING 192.168.0.175 (192.168.0.175) 56(84) bytes of data.
64 bytes from 192.168.0.175: icmp_seq=1 ttl=64 time=0.537 ms
64 bytes from 192.168.0.175: icmp_seq=2 ttl=64 time=0.206 ms
64 bytes from 192.168.0.175: icmp_seq=3 ttl=64 time=0.209 ms
64 bytes from 192.168.0.175: icmp_seq=4 ttl=64 time=0.193 ms
64 bytes from 192.168.0.175: icmp_seq=5 ttl=64 time=0.193 ms
(Abbruch mit Ctrl+C)
--- 192.168.0.175 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.193/0.267/0.537/0.136 ms

Der Server ist also erreichbar, wir loggen uns ein:

fish@fishbook:~$ ssh 192.168.0.175
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
cf:43:78:9d:7e:8b:60:f5:f4:50:2d:a9:76:90:a8:ad.
Please contact your system administrator.
Add correct host key in /home/fish/.ssh/known_hosts to get rid of this
message.
Offending key in /home/fish/.ssh/known_hosts:1
RSA host key for 192.168.0.175 has changed and you have requested strict
checking.
Host key verification failed.

Diese Meldung erscheint bei Ihnen wohl nicht - gut so. Bei mir kommt sie, weil ich schonmal mit diesem Laptop auf den Server (mit gleicher IP) zugegriffen habe, der Schlüssel sich aber nach der Neuinstallation natürlich geändert hat. Dem wirken wir entgegen mit folgendem Befehl:

fish@fishbook:~$ ssh-keygen -R hostname
/home/fish/.ssh/known_hosts updated.
Original contents retained as /home/fish/.ssh/known_hosts.old

Der alte Schlüssel ist nun aus der Datei ~/.ssh/known_hosts entfernt und dem Einloggen auf dem Server steht nichts mehr im Wege. Falls es immer noch nicht geht, kann man z.B. einfach den Inhalt von ~/.ssh/known_hosts komplett löschen oder entsprechend editieren, dann sollte das Einloggen klappen.

fish@fishbook:~$ ssh 192.168.0.175
The authenticity of host '192.168.0.175 (192.168.0.175)' can't be established.
RSA key fingerprint is cf:43:78:9d:7e:8b:60:f5:f4:50:2d:a9:76:90:a8:ad.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.175' (RSA) to the list of known hosts.
fish@192.168.0.175's password:
Linux fishbox 2.6.15-26-server #1 SMP Thu Aug 3 04:09:15 UTC 2006 i686
GNU/Linux
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
Last login: Mon Apr 2 15:07:27 2007
fish@fishbox:~$

Ich bin drin!

Von nun an kann man am Server also Bildschirm und Tastatur entfernen und die Administration und Konfiguration per SSH erledigen. Achtung: Gewisse PCs verlangen beim Neustart zwingend eine Tastatur und booten sonst nicht. Falls das bei Ihnen passieren sollte, lässt sich dies aber normalerweise im BIOS ausschalten!

Der SSH-Zugang funktioniert zwar nun, ist aber noch nicht optimal eingerichtet. Besser ist es nämlich (aus Sicherheitsgründen!) sich ausschließlich über das noch sicherere Public-Key-Verfahren anzumelden und die Passwort-Authentifikation auszuschalten. Wer nun keinen Key hat, kann gar nicht erst auf das System zugreifen.

Auf dem Client führen wir nun folgenden Befehl aus:

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung