Ermitteln, ob ein Benutzer eine passwortbasierte oder schlüsselbasierte SSH-Authentifizierung verwendet
Stellen Sie sich folgendes Szenario vor. Sie haben gerade die SSH-Schlüsselbasierte Authentifizierung auf Ihrem Linux-Server konfiguriert. Und dann haben Sie beschlossen, die passwortbasierte Authentifizierung vollständig zu deaktivieren und allen Benutzern nur die schlüsselbasierte Authentifizierung zu erlauben. Bevor Sie die Passwortauthentifizierung deaktivieren, möchten Sie überprüfen, welche Benutzer noch Passwörter verwenden, um über SSH auf den Server zuzugreifen. Wie werden Sie das machen? Nun, es ist möglich! Dieser kurze Leitfaden erklärt, wie man herausfindet, ob ein Benutzer auf Linux passwortbasierte oder schlüsselbasierte SSH-Authentifizierung verwendet.
Ermitteln, ob ein Benutzer eine passwortbasierte oder schlüsselbasierte SSH-Authentifizierung verwendet
Wir können feststellen, ob ein Benutzer über SSH mit Passwort oder SSH-Schlüssel auf einem Linux-Server angemeldet ist. Es ist keine 100% zuverlässige und garantierte Methode, aber es ist dennoch ein guter Ansatz.
Überprüfen Sie zunächst, ob die Datei ~/.ssh/authorized_keys existiert. Denn bei der SSH-Schlüssel-basierten Authentifizierungsmethode sollte der SSH-öffentliche Schlüssel auf die Systeme hochgeladen werden, auf die Sie per SSH zugreifen möchten. Die öffentlichen Schlüssel werden normalerweise in einer Datei namens ~/.ssh/authorized_keys auf den entfernten Systemen gespeichert. Wenn diese Datei existiert, besteht die Möglichkeit, dass der Benutzer wahrscheinlich die Schlüssel-basierte Authentifizierung verwendet.
Überprüfen Sie als Nächstes die Authentifizierungsprotokolldateien, um zu verifizieren, welche Authentifizierungsmethode der Benutzer derzeit verwendet, um auf das Remote-System zuzugreifen. Die Authentifizierungsmethode wird in der Datei "/var/log/secure" auf RPM-basierten Systemen (z. B. CentOS) und in der Datei "/var/log/auth.log" auf DEB-basierten Systemen (z. B. Ubuntu) protokolliert.
Suchen Sie einfach im Authentifizierungsprotokoll nach dem Passwort-Eintrag mit dem grep-Befehl oder auf andere von Ihnen bevorzugte Weise.
$ grep 'password' /var/log/secure
Oder,
$ grep 'password' /var/log/auth.logBeispielausgabe:
[...]
May 8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2
May 8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2Haben Sie die Zeilen "Accepted password for ..." in der obigen Ausgabe bemerkt? Es bedeutet, dass der Benutzer auf die entfernten Systeme mit einem Passwort zugreift. Laut der obigen Ausgabe greifen die Benutzer "senthil" und "sk" mit der SSH-Passwortauthentifizierung auf das Remote-System zu.
Wenn der Benutzer die schlüsselbasierte Authentifizierung verwendet, würden Sie wahrscheinlich eine Ausgabe wie unten sehen:
May 8 10:40:56 ostechnix sshd[3405]: Accepted publickey for sk from 192.168.225.37 port 41992 ssh2Natürlich ist es etwas schwierig, wenn die Protokolldatei sehr lang ist und eine große Anzahl von Einträgen enthält. In diesem Fall verwenden Sie den Befehl "tail", um eine bestimmte Anzahl von Protokolldateien anzuzeigen.
Zum Beispiel zeigt der folgende Befehl nur die letzten 10 Einträge der Protokolldatei an:
$ grep 'password' /var/log/auth.log | tail -n 10Beispielausgabe:
May 8 10:21:49 ostechnix sshd[2135]: Accepted password for senthil from 192.168.225.37 port 41920 ssh2
May 8 10:21:57 ostechnix sshd[2222]: Accepted password for sk from 192.168.225.37 port 41922 ssh2
May 8 10:24:57 ostechnix sshd[2360]: Accepted password for senthil from 192.168.225.37 port 41924 ssh2
May 8 10:25:04 ostechnix sshd[2448]: Accepted password for sk from 192.168.225.37 port 41926 ssh2
May 8 10:29:40 ostechnix sshd[2663]: Accepted password for senthil from 192.168.225.37 port 41938 ssh2
May 8 10:29:55 ostechnix sshd[2765]: Accepted password for sk from 192.168.225.37 port 41940 ssh2
May 8 10:39:34 ostechnix sshd[3064]: Accepted password for senthil from 192.168.225.37 port 41986 ssh2
May 8 10:39:55 ostechnix sshd[3184]: Accepted password for sk from 192.168.225.37 port 41988 ssh2
May 8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2
May 8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2Sie können auch das -f Flag verwenden, um das Protokoll während des Tests zu verfolgen.
$ grep 'password' /var/log/auth.log | tail -f -n 10Wenn Sie die gesamte Protokolldatei Seite für Seite auf "password" Einträge überprüfen möchten, verwenden Sie den Befehl "less":
$ grep 'password' /var/log/auth.log | less
Um alle Protokolle im Zusammenhang mit sshd (erfolgreiche oder fehlgeschlagene Versuche) zu finden, ersetzen Sie "password" durch "sshd" in allen oben genannten Befehlen.
$ grep 'sshd' /var/log/auth.log | tail -n 10Weitere SSH-bezogene Anleitungen:
- SSH-Zugriff für einen bestimmten Benutzer oder eine bestimmte Gruppe in Linux erlauben oder verweigern
- Begrenzen Sie die Anzahl der SSH-Anmeldungen pro Benutzer/Gruppe/System
- Beschränken Sie den Zugriff auf Linux-Server mithilfe von TCP Wrappers
- Führe Befehle auf entfernten Linux-Systemen über SSH aus
- So erstellen Sie ein SSH-Alias unter Linux
- Wie man sich per SSH in ein bestimmtes Verzeichnis unter Linux einloggt
- SSLH – Einen Gleichen Port Für HTTPS Und SSH Teilen
- ScanSSH – Schneller SSH-Server- und Open-Proxy-Scanner
- So setzen Sie teilweise übertragene Dateien über SSH mit Rsync fort
- So führen Sie einen einzelnen Befehl gleichzeitig auf mehreren entfernten Systemen aus
- DSH – Einen Linux-Befehl gleichzeitig auf mehreren Hosts ausführen
- So verhindern Sie, dass die SSH-Sitzung unter Linux getrennt wird
- So aktivieren Sie SSH auf FreeBSD
Ich hoffe, das hilft.
