Weil ich doch öfter als geplant Linux-Server aufsetze und deren SSH-Port ans Internet hängen muss, benötige ich selber hin und wieder genau diese Step-By-Step-Beschreibung. Sie ist aus mehreren Webseiten zusammenkopiert und auf das wichtigste reduziert.

Schritt 1: Eigene Schlüssel generieren

Zunächst müssen wir eigene Schlüssel generieren, mit denen wir uns ausweisen können. Dieser wird 4096 Bits lang sein und das Label “jannik@outlook.com” tragen. Standardmäßig nutzt man hier seine E-Mail-Adresse, für meine privaten Server habe ich meistens auch noch einen Rechnernamen angehängt, damit ich weiß, wo der Schlüssel herkommt.

Außerdem wird nach einem Passwort gefragt, mit dem der private Teil des Schlüsselpaares verschlüsselt werden soll. Erst mit diesem Passwort ist es möglich, sich auf fremden Rechnern einzuloggen, es bietet sich also an, ein sicheres Passwort zu nutzen.

ssh-keygen -t rsa -b 4096 -C "jannik@outlook.com"

Wenn nicht anders im Wizard angegeben, wird der Schlüssel unter ~/.ssh/id_rsa (privater Schlüssel) und ~/.ssh/id_rsa.pub (öffentlicher Schlüssel) gespeichert.

Schritt 2: Zylinder einsetzen

Anschließend müssen wir uns zum vorletzten Mal mit dem (unsichererem) Passwort auf dem Server einloggen und unser Sicherheitsschloss einstellen. Das machen wir mit diesem Befehl:

ssh-copy-id -i ~/.ssh/id_rsa <-p 22> <User>@<Host>

Veränderliche an diesem Befehl sind:

  1. Der Pfad zum öffentliche Schlüssel, auch wenn hier der Pfad zum Privaten angegeben wird!
  2. Der Port, auf dem der SSH-Daemon lauscht (Standard: 22).
  3. Nutzername und
  4. Host des Rechners, auf den wir uns einrichten wollen.

Nach dem Absenden dieses Befehls werden wir nach dem Passwort gefragt, mit dem wir uns früher auf dem Ziel-Rechner aufgeschaltet haben, und der Schlüssel hinzugefügt.

Schritt 3: Offene Fenster vernageln

Nun haben wir es fast geschafft, unsere sichere Türe ist bereits installiert. Trotzdem müssen wir jetzt die restlichen Fenster vernageln, sprich: die Passwort-Authentifikation abschalten. Dazu schalten wir uns auf den Server mit dem neuen Schlüssel:

ssh <User>@<Host>

Es wird nach dem Passwort gefragt werden, mit dem wir unseren Private Key verschlüsselt haben. Nun müssen wir den SSH-Server auf dem Zielsystem so konfigurieren, dass er Passwort-Auth. ablehnt. Dazu suchen wir in der Datei /etc/ssh/sshd_config die Phrase PasswordAuthentication no und sorgen dafür, dass eventuelle #-Zeichen in dieser Zeile gelöscht sind.

Abschließend müssen wir den SSH-Server neustarten. Da es verschiedene Daemon-Systeme gibt (und ihre eigenen Religionskriege darüber), gibt es auch verschiedene Möglichkeiten, dies zu tun:´


# systemd
sudo systemctl restart ssh

# Debian / Ubuntu / CentOS / RHEL / Fedora / Redhat
/etc/init.d/ssh restart
# OR
service ssh restart
# OR
sudo service ssh restart

# *BSD
/etc/rc.d/sshd restart
# OR
sudo service sshd restart

# Unix (sshd.pid kann sich ändern)
kill -HUP `cat /var/run/sshd.pid`
# OR
kill -HUP $(cat /var/run/sshd.pid)

© Vivek Gite, nixcraft - [2].

Die Verbindung wird geschlossen, und nachdem der SSH-Server wieder da ist (normalerweise ziemlich hurtig), kann man sich (via SSH) nur noch mit dem öffentlichen Schlüssel an dem Server anmelden.

Ressources

[1] https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

[2] https://www.cyberciti.biz/faq/howto-restart-ssh/

Avatar

Veröffentlicht am von Jannik

Technik IT-Sec

19 | der blasse, dünne Junge aus der Nachbarschaft | Macht Web Design, Theatertechnik und Pfadfinder | Ist #Wö‑Leiter | Studiert was mit Medien