2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Dienstname: sshd
Server-Hauptprogramm: /usr/sbin/sshd
Serverkonfigurationsdatei: /etc/ssh/sshd config
SSH-Client: Putty, Xshell, CRT, MobaXterm, FinalShell
SSH-Server: OpenSSH
SSH-Server: Standardmäßig wird TCP-Port 22 verwendet und die Sicherheitsprotokollversion ist sshv2. Zusätzlich zu 2 gibt es auch 1 (mit Lücken).
Der SSH-Server umfasst hauptsächlich zwei Dienstfunktionen: SSH-Remote-Link und SFTP-Dienst.
Funktion: Der SSHD-Dienst verwendet das SSH-Protokoll, um eine Fernsteuerung durchzuführen oder Dateien zwischen Computern zu übertragen.
Im Vergleich zur vorherigen Verwendung von Telnet zum Übertragen von Dateien ist es viel sicherer, da Telnet eine Klartextübertragung und SSH eine verschlüsselte Übertragung verwendet.
OpenSSH ist ein Open-Source-Softwareprojekt, das das SSH-Protokoll implementiert und für verschiedene UNIX- und Linux-Betriebssysteme geeignet ist. Auf dem Centos 7-System sind standardmäßig OpenSSH-bezogene Softwarepakete installiert, und der SSHD-Dienst wird hinzugefügt, um beim Booten automatisch zu starten.
[Version 7 weist jedoch Probleme und Schwachstellen auf und muss aktualisiert werden. Die neueste Version ist derzeit 9.8]
Version ansehen:ssh -V
Führen Sie den Befehl „systemctl start sshd“ aus, um den SSHD-Dienst zu starten
Sowohl ssh_config als auch sshd_config sind Konfigurationsdateien für den SSH-Server. Der Unterschied zwischen den beiden besteht darin, dass erstere eine Konfigurationsdatei für den Client und letztere eine Konfigurationsdatei für den Server ist.
SSH wird grundsätzlich zur Fernverwaltung von Linux-Systemen verwendet. Der Grund ist ganz einfach: Übertragungsmethoden wie Telnet und FTP übertragen Benutzerauthentifizierungsinformationen im Klartext, was von Natur aus unsicher ist und die Gefahr des Abhörens des Netzwerks birgt. SSH (Secure Shell) ist derzeit zuverlässiger.
Ist ein Protokoll, das Sicherheit für Remote-Anmeldesitzungen und andere Netzwerkdienste bietet. Durch die Verwendung des SSH-Protokolls kann ein Informationsverlust während der Fernverwaltung wirksam verhindert werden. Alle übertragenen Daten können über SSH verschlüsselt werden, und auch DNS-Spoofing und IP-Spoofing können verhindert werden.
1.3.1. Anmeldemethode eins
ssh [Benutzername des Remote-Hosts] @[Hostname oder IP-Adresse des Remote-Servers] -p Port
Wenn Sie den Benutzernamen verwenden möchtenlisi
Die mit der IP-Adresse verbundene Identität ist192.168.1.100
Server, und der SSH-Dienst des Servers wird auf dem Port ausgeführt22
, sollten Sie den folgenden Befehl verwenden:
当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。
beigefügt
Host-Mapping
1.3.2. Anmeldemethode zwei
ssh -l [Benutzername des Remote-Hosts] [Hostname oder IP-Adresse des Remote-Servers] -p Port
-l: Option -l, gibt den Anmeldenamen an.
-p: Die Option -p gibt den Anmeldeport an (wenn der Serverport nicht der Standardport ist, müssen Sie -p verwenden, um den Anmeldeport anzugeben.)
(nicht viel genutzt)
Abfrage zum öffentlichen Schlüssel
Anfrage auf Client
Der Server fragt seinen eigenen öffentlichen Schlüssel ab
Hinweis: Das System speichert die Informationen des Remote-Hosts nicht, wenn er sich zum ersten Mal am Server anmeldet. Um die Identität des Hosts zu bestätigen, wird der Benutzer gefragt, ob er die Verbindung fortsetzen möchte in. Zu diesem Zeitpunkt schreibt das System die Remote-Serverinformationen in $HOME im Home-Verzeichnis des Benutzers. Wenn Sie sich das nächste Mal anmelden, werden Sie nicht erneut dazu aufgefordert, da die Hostinformationen gespeichert sind .
OpenSSH überprüft den öffentlichen Schlüssel, wenn Sie das nächste Mal auf denselben Computer zugreifen. Wenn die öffentlichen Schlüssel unterschiedlich sind, gibt OpenSSH eine Warnung aus, um Sie vor Angriffen wie DNS-Hijack zu schützen.
Lösung
1. Wenn Sie sich per SSH beim Remote-Host anmelden, fügen Sie die Option „-o StrictHostKeyChecking=no“ wie folgt hinzu:
ssh -o StrictHostKeyChecking=no 192.168.xxx.xxx
2. Eine Möglichkeit, diese Eingabeaufforderung vollständig zu entfernen, besteht darin, die Konfiguration in der Datei /etc/ssh/ssh_config (oder $HOME/.ssh/config) zu ändern und die folgenden zwei Konfigurationszeilen hinzuzufügen:
StrictHostKeyChecking nein
UserKnownHostsFile /dev/null
Aber es ist am besten, nichts hinzuzufügen
Allgemeiner Konfigurationsserver
vim /etc/ssh/sshd_config
Der Port muss geändert werden, um zu verhindern, dass andere ihn gewaltsam knacken.
ListenAddress legt die an den SSHD-Server gebundene IP-Adresse fest. 0.0.0.0 bedeutet, dass alle Adressen überwacht werden
Sicherheitsvorschlag: Wenn der Host keinen SSH-Zugriff vom öffentlichen Netzwerk benötigt, können Sie die Abhöradresse in die interne Netzwerkadresse ändern. Dieser Wert kann als lokale IP-Adresse oder als alle Adressen geschrieben werden, d. h. 0.0.0.0 steht für alle IPs.
Wenn sich jemand über SSH am System anmeldet, zeichnet SSH Informationen auf. Der Typ der aufzuzeichnenden Informationen ist AUTHPRIV. Das sshd-Dienstprotokoll wird unter /var/log/secure gespeichert.
Um festzustellen, ob die Quelle des Clients normal und legitim ist, wird im Allgemeinen DNS verwendet, um den Hostnamen des Clients zu überprüfen. Bei Verbindungen innerhalb des Intranets ist diese Basis jedoch normalerweise auf „Nein“ eingestellt, sodass die Verbindungsgeschwindigkeit nicht stimmt sei schneller.
Hinweis: Deaktivieren Sie die umgekehrte DNS-Auflösung, um die Antwortgeschwindigkeit des Servers zu verbessern
Sowie einige Sicherheitskonfigurationen und Sicherheitsoptimierungen
PermitRootLogin Ob die Root-Anmeldung zugelassen werden soll, ist standardmäßig zulässig, es wird jedoch empfohlen, sie auf „Nein“ zu setzen.Ein echter Produktionsumgebungsserver erlaubt keine direkte Anmeldung mit dem Root-Konto., dürfen sich nur normale Benutzer anmelden. Sie müssen den Root-Benutzer verwenden und dann zum Root-Benutzer wechseln.
PasswortAuthentifizierung Ja
Natürlich ist eine Passwortüberprüfung erforderlich, daher können Sie hier „Ja“ schreiben oder auf „Nein“ setzen. Auf echten Produktionsservern ist für einige Einstellungen je nach Sicherheitsniveau keine Passwortanmeldung erforderlich, und Sie können sich über die Authentifizierung anmelden Schlüssel.
PermitEmptyPasswords NEIN
Gibt an, ob sich Benutzer mit leeren Passwörtern anmelden dürfen. Die Standardeinstellung ist „Nein“. Die Anmeldung mit leeren Passwörtern ist nicht zulässig.
PrintLastLog ja
Zeigt die zuletzt angemeldeten Informationen an! Die Standardeinstellung ist „Ja“.
MaxAuthTries 6
Gibt die maximale Anzahl zulässiger Authentifizierungen pro Verbindung an. Der Standardwert ist 6.
Wenn die Anzahl der fehlgeschlagenen Authentifizierungen die Hälfte dieses Wertes überschreitet, wird die Verbindung zwangsweise getrennt und es werden zusätzliche Fehlerprotokollmeldungen generiert.
Standardmäßig 3 Mal
Pam-Modul aktivieren
Kommentar
Schwarz-Weiß-Liste
Benutzer zulassen
Wenn Sie nur bestimmten Benutzern die Anmeldung erlauben oder verbieten möchten, können Sie die Konfiguration „AllowUsers“ oder „DenyUsers“ verwenden. Die Verwendung beider ist ähnlich (achten Sie darauf, sie nicht gleichzeitig zu verwenden).
Konfigurieren SieAllowUsers
Wenn beispielsweise nur die Benutzer zhangsan und wangwu sich bei anderen (lisi) Benutzern anmelden dürfen
Hinzufügen zu
AllowUsers [email protected] wangwu
In 3 Schritte unterteilt:
Der Client generiert den Schlüssel (öffentlicher Schlüssel und privater Schlüssel) im Xshell-Client;
Platzieren Sie den öffentlichen Schlüssel in der Datei ~/.ssh/authorized_key des Linux-Servers.
Konfigurieren Sie den SSH-Client (Xshell-Client) für die Anmeldung mit einem Schlüssel
1. Generieren Sie zunächst den öffentlichen Schlüssel im xshell-Tool
Passen Sie die Länge von 2048 an, führen Sie einfach den nächsten Schritt aus, Sie können den Namen und das Passwort festlegen
Nach Abschluss der Generierung gibt es einen öffentlichen Schlüssel. Speichern Sie ihn
Dateien mit der Endung pub
Dann öffnen Sie unsere Linux-Maschine
Wechseln Sie in das Verzeichnis ~/.shh (Sie müssen zum ersten Mal ssh ohne Passwort ausführen, da sonst möglicherweise keine .shh-Datei vorhanden ist)
Öffentlichen Schlüssel hochladen
Natürlich müssen Sie es auch in den Standardnamen „authorized_keys“ ändern
Erstellen Sie ein Backup des privaten Schlüssels
Passwortfreies Login
Anmeldung erfolgreich
Bereiten Sie ein Sprungbrett vor
Die Option „-t“ des Befehls ssh-keygen wird verwendet, um den Algorithmustyp zum Generieren öffentlicher und privater Schlüssel anzugeben.
ssh-Kopie-ID [email protected]
verwendenssh-copy-id
Werkzeug: Dadurch wird der Kopiervorgang des öffentlichen Schlüssels automatisch durchgeführt. Dieser Befehl übernimmt automatisch das Kopieren Ihresid_rsa.pub
Der Inhalt des öffentlichen Schlüssels wird an den Remote-Server angehängt~/.ssh/authorized_keys
in der Datei.
Passwort eingeben: Da Sie zum ersten Mal auf diese Weise eine Verbindung zu einem Remote-Server herstellen, werden Sie möglicherweise aufgefordert, das Passwort des Remote-Root-Benutzers einzugeben.
Anmeldung über Springboard 79 19
Berechtigungen ändern
vim /etc/ssh/sshd_config
In den Zeilen 17, 43, 65
Starten Sie den SSHD-Dienst neu
versuchen Sie es erneut
Port angeben, Erfolg
Inhalte werden in Dateiressourcen migriert
Der DSA-Signaturalgorithmus ist standardmäßig deaktiviert
Dateien vorbereiten
Offizielle OpenSH-WebsiteOpenSSH: Versionshinweise
Da für OpenSSH9.8P1 eine OpenSSL-Version größer oder gleich 1.1.1 erforderlich ist, muss OpenSSL aktualisiert und installiert werden.
Offizielle WebsiteRelease OpenSSL 1.1.1v · openssl/openssl · GitHub