GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Root-SSH-Anmeldung nur mit Public-Key-Authentifizierung zulassen

Die Grundlagen

Der SSH-Server hat mehrere Möglichkeiten, einen Client zu authentifizieren, der sich mit ihm verbindet. Die beliebteste Methode ist die passwortbasierte Authentifizierung, da sie die einfachste, aber nicht so sichere ist. Passwörter werden mit sicheren Mechanismen ausgetauscht, sind aber aufgrund der Benutzerfreundlichkeit im Allgemeinen nicht komplex oder lang. Dies ermöglicht es dem Angreifer, das Passwort durch Brute-Force- oder Wörterbuchangriffe zu knacken. In solchen Szenarien können die SSH-Schlüssel ein sicheres und zuverlässiges Mittel zur Authentifizierung für Clients bieten.

Der SSH-Server verwendet ein Kryptografieschema mit öffentlichem Schlüssel, um Benutzer zu authentifizieren. Bei diesem Schema wird zur Authentifizierung ein Schlüsselpaar generiert, ein öffentlicher Schlüssel und ein privater Schlüssel. Wie der Name schon sagt, wird ein privater Schlüssel vom Client geheim gehalten, da seine Kompromittierung dazu führen kann, dass sich jemand ohne zusätzliche Authentifizierung beim Server anmeldet.

Der entsprechende öffentliche Schlüssel zum geheimen privaten Schlüssel des Clients wird nicht geheim gehalten und auf Systeme kopiert, an denen sich der Benutzer anmeldet. Der private Schlüssel wird verwendet, um die mit dem zugehörigen öffentlichen Schlüssel des Clients verschlüsselte Nachricht zu entschlüsseln. Mit dem Schlüsselpaar können wir auch die passwortlose Authentifizierung aktivieren. Der vertrauenswürdige öffentliche Schlüssel des Clients wird in einer speziellen Datei mit dem Namen "authorized_keys" im Home-Verzeichnis des Benutzerkontos gespeichert.

Wenn ein Client versucht, den SSH-Server mithilfe von Schlüsseln zu authentifizieren, wird eine Abfrage mit dem im Server gespeicherten öffentlichen Schlüssel des Clients ausgegeben. Nach erfolgreicher Entschlüsselung der Herausforderung mit dem privaten Schlüssel des Clients erhält der Benutzer Zugriff auf die Shell des Servers.

Authentifizierung nur mit öffentlichem Schlüssel für ssh konfigurieren

1. Bearbeiten Sie als Root die Konfigurationsdatei des sshd-Daemons (/etc/ssh/sshd_config ).

2. Ändern Sie die Parameter PermitRootLogin und PubkeyAuthentication so, dass sie die folgenden Werte haben:

PermitRootLogin without-password
PubkeyAuthentication yes

Erlauben Sie nur die schlüsselbasierte SSH-Anmeldung im Root-Konto, indem Sie den PermitRootLogin-Wert der Direktive auf ohne Passwort setzen wie oben gezeigt.

3. Überprüfen Sie, ob die Syntax der Konfigurationsdatei sshd_config korrekt ist, bevor Sie sshd deamon neu starten.

# sshd -t

Der obige Befehl sollte nichts zurückgeben. Das bedeutet, dass die Konfigurationsdatei syntaktisch korrekt ist und Sie sicher sind, den sshd-Daemon ohne Probleme neu zu starten.

4. Starten Sie den sshd-Daemon neu:

# service sshd restart

oder

# systemctl restart sshd


Linux
  1. So verbinden Sie sich mit plink und cmd und öffentlichem Schlüssel mit dem SSH-Server

  2. Ssh – Erhalten Sie immer noch eine Passwortabfrage mit Ssh mit Authentifizierung mit öffentlichem Schlüssel?

  3. So deaktivieren Sie die SSH-Anmeldung mit Passwort

  4. Aktivieren Sie die öffentliche SSH-Schlüsselauthentifizierung

  5. Beschränken Sie die SSH-Anmeldung auf eine bestimmte IP oder einen bestimmten Host

SSH-Root-Anmeldung auf Ubuntu 20.04 Focal Fossa Linux zulassen

SSH-Root-Anmeldung unter Ubuntu 22.04 Jammy Jellyfish Linux zulassen

So fügen Sie dem Server einen öffentlichen SSH-Schlüssel hinzu

Passwortloser SSH-Login in 3 einfachen Schritten

Melden Sie sich mit einem privaten SSH-Schlüssel auf einem Windows-Client bei einem Linux-Server an

Öffentlichen Schlüssel zur Datei known_hosts hinzufügen