SSH steht für Secure Shell, ein sicheres Übertragungsprotokoll. Ubuntu-Clients können über SSH auf Remote-Server zugreifen. Einführung und Funktionsweise von SSH Einführung in SSH Herkömmliche Netzwerkdienstprogramme wie FTP, POP und Telnet sind grundsätzlich unsicher, da sie Passwörter und Daten im Klartext über das Netzwerk übertragen, die von Personen mit Hintergedanken leicht abgefangen werden können. Darüber hinaus weisen auch die Sicherheitsüberprüfungsmethoden dieser Serviceprogramme ihre Schwächen auf, d. h. sie können leicht durch „Man-in-the-Middle“-Methoden angegriffen werden. Die sogenannte „Man-in-the-Middle“-Angriffsmethode besteht darin, dass sich der „Man-in-the-Middle“ als der echte Server ausgibt, um die von Ihnen an den Server gesendeten Daten zu empfangen, und sich dann als Sie ausgibt, um die Daten an den echten Server zu senden. Sobald die Datenübertragung zwischen dem Server und Ihnen durch den „Mittelsmann“ manipuliert wird, treten ernsthafte Probleme auf. Es war einmal ein finnischer Programmierer namens Tatu Yl?nen, der ein Netzwerkprotokoll und eine Service-Software namens SSH (kurz für Secure SHell) entwickelte. Durch die Verwendung von SSH können Sie alle übertragenen Daten verschlüsseln, was „Man-in-the-Middle“-Angriffe unmöglich macht und auch DNS- und IP-Spoofing verhindert. Ein zusätzlicher Vorteil besteht darin, dass die übertragenen Daten komprimiert werden und somit die Übertragungsgeschwindigkeit beschleunigt werden kann. SSH verfügt über zahlreiche Funktionen und obwohl viele Leute Secure Shell lediglich als Ersatz für Telnet betrachten, können Sie damit Ihre Netzwerkverbindungen sichern. Sie können andere Netzwerkkommunikationen wie POP, X, PPP und FTP über Secure Shell auf lokalen oder Remote-Systemen weiterleiten. Sie können auch andere Arten von Netzwerkverkehr weiterleiten, einschließlich CVS und anderen TCP-Verkehr. Darüber hinaus können Sie Secure Shell mit TCP-Wrappern verwenden, um die Sicherheit der Verbindung zu erhöhen. Darüber hinaus verfügt Secure Shell über einige andere praktische Funktionen, die für Anwendungen wie Oracle verwendet werden können. Sie können es auch für Remote-Backups und zusätzliche Authentifizierungen wie SecurID-Karten verwenden. So funktioniert SSH SSH ist in zwei Teile unterteilt: den Client-Teil und den Server-Teil. Der Server ist ein Daemonprozess, der im Hintergrund ausgeführt wird und auf Verbindungsanforderungen von Clients reagiert. Der Server ist normalerweise der SSHD-Prozess, der die Verarbeitung für Remoteverbindungen bereitstellt, im Allgemeinen einschließlich öffentlicher Schlüsselauthentifizierung, Schlüsselaustausch, symmetrischer Schlüsselverschlüsselung und unsicherer Verbindungen. Der Client umfasst das SSH-Programm und andere Anwendungen wie SCP (Remote Copy), Slogin (Remote Login), SFTP (Secure File Transfer) usw. Ihr Arbeitsmechanismus besteht im Wesentlichen darin, dass der lokale Client eine Verbindungsanforderung an den Remote-Server sendet. Der Server überprüft das Anforderungspaket und die IP-Adresse und sendet dann den Schlüssel an den SSH-Client. Der lokale Client sendet den Schlüssel dann zurück an den Server und die Verbindung wird hergestellt. Was ich gerade besprochen habe, ist nur der allgemeine Prozess der SSH-Verbindung. Es gibt einige Unterschiede in den Verbindungsprotokollen zwischen SSH 1.x und SSH 2.x. SSH ist so konzipiert, dass es eigenständig funktioniert, ohne einen Superserver (inetd) zu verwenden. Obwohl es möglich ist, den SSH-Prozess über tcpd auf inetd auszuführen, ist dies völlig unnötig. Nach dem Start des SSH-Servers läuft sshd und lauscht auf dem Standardport 22 (Sie können mit # ps -waux | grep sshd überprüfen, ob sshd korrekt ausgeführt wurde). Wenn SSH nicht über inetd gestartet wird, wartet SSH weiterhin auf Verbindungsanfragen. Wenn eine Anfrage eingeht, generiert der SSH-Daemon einen untergeordneten Prozess, der die Verbindung handhabt. Aufgrund von Einschränkungen beim Urheberrecht und bei Verschlüsselungsalgorithmen wechseln jedoch viele Leute mittlerweile zu OpenSSH. OpenSSH ist eine kostenlose Alternative zu SSH. SSH besteht aus Client- und Serversoftware und es gibt zwei inkompatible Versionen: 1.x und 2.x. Sie können kein SSH 2.x-Clientprogramm verwenden, um eine Verbindung zu einem SSH 1.x-Serverprogramm herzustellen. OpenSSH 2.x unterstützt sowohl SSH 1.x als auch 2.x. SSH-Client OpenSSH-Client und OpenSSH-Server Wenn Sie sich nur bei SSH auf einem anderen Computer anmelden möchten, müssen Sie nur openssh-client installieren (Ubuntu hat es standardmäßig installiert, wenn nicht, dann sudoapt-get install openssh-client). Wenn Sie den SSH-Dienst auf diesem Computer öffnen möchten, müssen Sie openssh-server installieren. 1. Installieren Sie den Client Ubuntu hat den SSH-Client standardmäßig installiert. sudo apt-get install ssh oder sudo apt-get install openssh-client ssh-keygen (Drücken Sie die Eingabetaste, um den Standardwert festzulegen) Standardmäßig werden die Dateien id_rsa und id_rsa.pub generiert, die jeweils den privaten und öffentlichen Schlüssel enthalten. Hinweis: Wenn während des SSH-Befehls „sudo apt-get installsall“ ein Fehler auftritt und die Installation fehlschlägt, können Sie die Installation mit „sudo apt-get install openssh-client“ durchführen. Angenommen, die Server-IP ist 192.168.1.1, die Portnummer des SSH-Dienstes ist 22 und auf dem Server gibt es einen Benutzer mit dem Namen „root“. Der Befehl zum Anmelden beim Server per SSH lautet: >ssh –p 22 [email protected] >Geben Sie das Passwort des Root-Benutzers ein 2. Installieren Sie den Server In Ubuntu ist der SSH-Server nicht standardmäßig installiert. Verwenden Sie den folgenden Befehl, um ihn zu installieren: sudo apt-get installiere OpenSSH-Server Bestätigen Sie dann, ob der SSH-Server gestartet ist: (oder verwenden Sie den Befehl „netstat -tlp“) ps -e|grep ssh Wenn nur der SSH-Agent vorhanden ist, wurde der SSH-Server noch nicht gestartet. Sie müssen /etc/init.d/ssh start ausführen. Wenn Sie sshd sehen, wurde der SSH-Server gestartet. Wenn nicht, können Sie es folgendermaßen starten: sudo /etc/init.d/ssh starten Wenn keine besonderen Anforderungen bestehen, wird hier der OpenSSH-Server installiert. Aber durch weitere Konfiguration können Sie die OpenSSH-Anmeldezeit verkürzen und sicherer machen. All dies wird durch die Änderung der OpenSSH-Konfigurationsdatei sshd_config erreicht. SSH-Konfiguration Die Konfigurationsdatei des SSH-Servers befindet sich in /etc/ssh/sshd_config. Dort können Sie den SSH-Dienstport definieren. Der Standardport ist 22, Sie können ihn aber auch auf andere Portnummern wie z. B. 222 festlegen. Starten Sie anschließend den SSH-Dienst neu: sudo /etc/init.d/sshresart Durch Ändern der Konfigurationsdatei /etc/ssh/sshd_config können Sie den SSH-Anmeldeport ändern und die Root-Anmeldung verbieten. Das Ändern des Ports kann das Port-Scanning verhindern. sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original sudochmod aw /etc/ssh/sshd_config.original Bearbeiten Sie die Konfigurationsdatei: gedit /etc/ssh/sshd_config Suchen Sie #Port 22, heben Sie die Kommentierung auf und ändern Sie es in eine fünfstellige Portnummer: Suchen Sie nach #PermitRootLogin yes, heben Sie die Kommentierung auf und ändern Sie es in: Nachdem die Konfiguration abgeschlossen ist, führen Sie einen Neustart durch: sudo /etc/init.d/ssh neu starten 4. SSH-Dienstbefehle Stoppen Sie den Dienst: sudo /etc/init.d/ssh stop Starten Sie den Dienst: sudo /etc/init.d/ssh start Starten Sie den Dienst neu: sudo /etc/init.d/sshresart Trennen: beenden Anmeldung: [email protected] root ist der Benutzer auf der Maschine 192.168.0.100 und muss ein Passwort eingeben. 5. SSH-Anmeldebefehl Allgemeines Format: Sie können ssh -h verwenden, um weitere Details anzuzeigen. Beispiel Ohne Angabe eines Benutzers: Angegebener Benutzer: ssh -l root 192.168.0.1 ssh [email protected] Wenn Sie den SSH-Anmeldeport geändert haben: ssh -p 22333 192.168.0.111 ssh -l root -p 22333 216.230.230.105 ssh -p 22333 [email protected] 6. Verbessern Sie die Anmeldegeschwindigkeit Bei einer Remote-Anmeldung kann es vorkommen, dass Sie nach der Eingabe Ihres Benutzernamens lange warten müssen, bevor Sie zur Eingabe Ihres Kennworts aufgefordert werden. Tatsächlich liegt dies daran, dass SSHD eine umgekehrte Abfrage der DNS-Informationen des Clients durchführen muss. Sie können die Anmeldegeschwindigkeit erheblich erhöhen, indem Sie diese Funktion deaktivieren. Öffnen Sie zunächst die Datei sshd_config: sudo nano /etc/ssh/sshd_config Suchen Sie den Abschnitt mit den GSSAPI-Optionen und kommentieren Sie die folgenden beiden Zeilen aus: #GSSAPIAuthentication yes #GSSAPIDelegateCredentials no Starten Sie dann den SSH-Dienst neu: sudo /etc/init.d/ssh neu starten Versuchen Sie, sich erneut anzumelden. Es sollte sehr schnell gehen. 7. Verwenden Sie PuTTy, um sich über die Zertifikatsauthentifizierung beim Server anzumelden Beim SSH-Dienst werden sämtliche Inhalte verschlüsselt übertragen, die Sicherheit ist grundsätzlich gewährleistet. Wenn jedoch eine Zertifikatsauthentifizierung verwendet werden kann, wird die Sicherheit weiter verbessert und nach bestimmten Einstellungen kann auch der Effekt der automatischen Anmeldung durch Zertifikatsauthentifizierung erzielt werden. Ändern Sie zunächst die Datei sshd_config und aktivieren Sie die Option zur Zertifikatauthentifizierung: RSAAuthentication yes PubkeyAuthentication yesAuthorizedKeysFile %h/.ssh/authorized_keysNachdem die Änderung abgeschlossen ist, starten Sie den SSH-Dienst neu. Als nächstes müssen wir private und öffentliche Schlüssel für den SSH-Benutzer erstellen. Melden Sie sich zunächst bei dem Konto an, für das Sie einen Schlüssel erstellen müssen. Denken Sie daran, den Root-Benutzer zu verlassen und bei Bedarf mit dem Befehl su zu einem anderen Benutzer zu wechseln. Führen Sie dann Folgendes aus: ssh-keygen Hier speichern wir den generierten Schlüssel einfach im Standardverzeichnis. Während des Erstellungsprozesses werden Sie aufgefordert, eine Passphrase einzugeben. Dies entspricht dem Hinzufügen eines Kennworts zum Zertifikat. Dies ist auch eine Maßnahme zur Verbesserung der Sicherheit, sodass Sie sich keine Sorgen machen müssen, selbst wenn das Zertifikat versehentlich von jemandem kopiert wird. Wenn dieses Feld leer gelassen wird, kann sich PuTTy später natürlich automatisch per Zertifikatsauthentifizierung anmelden. Der Befehl ssh-keygen generiert zwei Schlüssel. Zuerst müssen wir den öffentlichen Schlüssel umbenennen und auf dem Server belassen: cd ~/.ssh mv id_rsa.pub autorisierte_Schlüssel Kopieren Sie anschließend den privaten Schlüssel id_rsa vom Server und löschen Sie die Datei id_rsa auf dem Server. Die Einstellungen auf dem Server sind abgeschlossen und die folgenden Schritte müssen auf dem Client-Computer durchgeführt werden. Zuerst müssen wir die id_rsa-Datei in ein von PuTTy unterstütztes Format konvertieren. Hier müssen wir das Tool PuTTyGEN verwenden: Klicken Sie in der PuTTyGen-Oberfläche auf die Schaltfläche „Laden“, wählen Sie die Datei id_rsa aus, geben Sie die Passphrase ein (sofern vorhanden) und klicken Sie dann auf die Schaltfläche „Privaten Schlüssel speichern“. Der von PuTTy akzeptierte private Schlüssel ist bereit. Öffnen Sie PuTTy, geben Sie die IP-Adresse des Servers in der Sitzung ein, klicken Sie unter Verbindung->SSH->Auth auf die Schaltfläche Durchsuchen und wählen Sie den soeben generierten privaten Schlüssel aus. Gehen Sie anschließend zurück zur Option „Verbindung“ und geben Sie bei „Benutzername für automatische Anmeldung“ den Benutzernamen ein, zu dem das Zertifikat gehört. Gehen Sie zurück zur Registerkarte „Sitzung“, geben Sie einen Namen ein und klicken Sie auf „Speichern“, um die Sitzung zu speichern. Klicken Sie unten auf „Öffnen“. Dann sollten Sie sich per Zertifikatsauthentifizierung beim Server anmelden können. Wenn eine Passphrase vorhanden ist, werden Sie während des Anmeldevorgangs aufgefordert, diese einzugeben. Andernfalls werden Sie direkt beim Server angemeldet, was sehr praktisch ist. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Linux verwendet den Binärmodus zur Installation von MySQL
1. Einführung in Komprimierung und Verpackung All...
JPQL steht für Java Persistence Query Language. B...
1. Grundlegende Verwendung Es kann über den Mutat...
So ändern Sie den Bild-Hyperlink, wenn Sie mit der...
Ein statischer Knoten ist auf einer Maschine fixi...
herunterladen: Schritt 1: Öffnen Sie die Website ...
Wirkung demo.html <html> <Kopf> <m...
Transaktionen in MySQL werden standardmäßig autom...
Erstellen eines Containers [root@server1 ~]# dock...
Als ich kürzlich eine Schnittstelle zeichnete, st...
Inhaltsverzeichnis 1. Bestimmen Sie den Entitätst...
Inhaltsverzeichnis Hintergrund Bereitstellen / In...
MySQL ist die am häufigsten verwendete Datenbank....
Portainer-Einführung Portainer ist ein grafisches...
Inhaltsverzeichnis Vorwort Einzelne Dateikomponen...