Werbung
SSH ist eine großartige Möglichkeit, um Remote-Zugriff auf Ihren Computer zu erhalten. Ähnlich wie bei FTP können Sie eine Verbindung über herstellen SSH-FTP Was SSH ist und wie es sich von FTP unterscheidet [Technologie erklärt] Weiterlesen um mit Ihrem Favoriten sicheren Zugriff auf einen Dateiserver zu erhalten FTP-Client Meistern Sie FTP-Dateiübertragungen auf all Ihren Websites mit FileZillaViele alte FTP-Clients hatten Probleme, wenn es um große Dateiübertragungen ging. Die Apps erlebten die üblichen Timeouts, die Sie erwarten würden, wenn der Computer 15 bis... Weiterlesen , schnell auf entfernte Dateien zugreifen oder sogar eine Netzwerkfestplatte an Ihren Computer anhängen. Aber SSH bietet mehr als Remote-Dateizugriff. Anmelden über SSH im Terminal (oder mit Kitt unter Windows) gibt Ihnen Remote-Shell-Zugriff (schließlich ist SSH die Abkürzung für Secure SHell). So verwalte ich meinen Medienserver aus der Ferne.
Wenn du öffne die Häfen Was ist Portweiterleitung und wie kann sie mir helfen? [MakeUseOf erklärt] Weinen Sie innerlich ein wenig, wenn Ihnen jemand sagt, dass es ein Problem mit der Portweiterleitung gibt und deshalb Ihre glänzende neue App nicht funktioniert? Ihre Xbox lässt Sie keine Spiele spielen, Ihre Torrent-Downloads verweigern ... Weiterlesen auf Ihrem Router (genauer Port 22) können Sie nicht nur von Ihrem lokalen Netzwerk aus auf Ihren SSH-Server zugreifen, sondern von überall auf der Welt.
Sie möchten jedoch nicht riskieren, ein schwaches Passwort zur Authentifizierung zu verwenden. Wenn jemand über SSH Zugriff auf Ihren Computer erhält, erhält er vollständigen Shell-Zugriff. Nur um es klarzustellen, das wollen wir nicht. Glücklicherweise ist es sehr einfach, Ihren globalen SSH-Server sehr sicher einzurichten, indem Sie die schlüsselbasierte Authentifizierung verwenden und die Kennwortauthentifizierung auf Ihrem Server vollständig deaktivieren.
Ist das für mich?
Es ist verlockend, mit der persönlichen Sicherheit locker zu werden. Wenn Sie den Server für private Zwecke nutzen, denken Sie vielleicht, dass die Leute einfach nichts über Ihren Server wissen und daher nicht versuchen werden, ihn zu hacken. Sicherheit durch Dunkelheit. Das wäre ein sehr falsche Annahme. Da der (meist) SSH-Verkehr auf Port 22 übertragen wird, überprüfen Angreifer routinemäßig die Sichtbarkeit von Port 22 auf zufällige IP-Adressen, gefolgt von einem Brute-Force-Angriff. Dies ist eine der Möglichkeiten, wie Botnets verwendet werden DDOS-Angriffe Was ist ein DDoS-Angriff? [MakeUseOf erklärt]Der Begriff DDoS pfeift immer dann vorbei, wenn Cyber-Aktivismus massenhaft seinen Kopf aufrichtet. Diese Art von Angriffen macht aus mehreren Gründen internationale Schlagzeilen. Die Probleme, die diese DDoS-Angriffe in Gang setzen, sind oft umstritten oder sehr... Weiterlesen .
Um es kurz zu machen: Wenn Sie Ihren SSH-Server über das Internet übertragen (also Port 22 weiterleiten), dann ist dies für Sie.
Die Idee schlüsselbasierter SSH-Logins
Schlüsselbasierte SSH-Logins basieren auf der Idee von Kryptografie mit öffentlichem Schlüssel. Es würde zu weit führen, die Feinheiten zu erklären, aber wir versuchen, ein einfaches Bild von dem zu zeichnen, was hinter den Kulissen vor sich geht.
Im folgenden Prozess generiert Ihr Client-Computer zwei Schlüssel: einen öffentlichen Schlüssel und einen privaten Schlüssel. Die allgemeine Idee ist, dass Sie Daten mit dem öffentlichen Schlüssel verschlüsseln, aber nur mit dem privaten Schlüssel entschlüsseln können. Wir legen den öffentlichen Schlüssel auf den Server und bitten ihn, die gesamte ausgehende Kommunikation damit zu verschlüsseln. Dadurch wird sichergestellt, dass nur die Clients mit dem privaten Schlüssel die Daten entschlüsseln und lesen können.
1. OpenSSH installieren
Zuerst richten wir einen SSH-Server mit OpenSSH ein. Wenn Sie bereits über einen SSH-Server verfügen und nur wissen möchten, wie Sie die schlüsselbasierte Authentifizierung einrichten, können Sie diesen Schritt überspringen. Verwenden Sie Ihren bevorzugten Paketmanager, um die OpenSSH-Serveranwendung zu installieren. Der einfachste Weg könnte immer noch darin bestehen, die apt-get Befehl aus dem Terminal.
sudo apt-get install openssh-server
Geben Sie Ihr Passwort ein, bestätigen Sie es und warten Sie eine Minute, bis die Installation abgeschlossen ist. Herzlichen Glückwunsch, Sie haben jetzt einen SSH-Server. (Das war einfach!)
Sie können die Anwendung entweder unverändert verwenden oder bearbeiten /etc/ssh/sshd_config
um es zu konfigurieren. Führen Sie die Mann sshd_config
Befehl im Terminal, um weitere Informationen zu erhalten. Eine weitere großartige Ressource, um mehr über OpenSSH zu erfahren, ist die entsprechende Ubuntu-Hilfeseite.
2. Schlüssel generieren
Wir generieren eine Reihe von Schlüsseln. Führen Sie die folgenden Befehle aus (angepasst von der OpenSSH/Schlüssel Ubuntu-Hilfeseite).
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
Der erste Befehl erstellt ein verstecktes Verzeichnis ‚.ssh‘ in Ihrem Home-Ordner, der zweite Befehl ändert die Zugriffsberechtigungen des Ordners, während der dritte Befehl tatsächlich eine Reihe von generiert RSA Schlüssel. Sie werden zuerst nach einem Speicherort für die Schlüssel gefragt (leer lassen und die Eingabetaste drücken, um den Standardspeicherort zu speichern) und zweitens nach einer Passphrase.
Diese Passphrase verschlüsselt den privaten Schlüssel, der auf Ihrem Computer gespeichert ist, weiter, sodass Sie im Wesentlichen mehr Zeit haben, den SSH-Server zu sichern, falls Ihr privater Schlüssel jemals gestohlen wird. Stellen Sie sicher, dass Sie eine Passphrase auswählen, die Sie sich merken können, da Sie sie eingeben müssen, wenn Sie versuchen, Ihren Schlüssel zu verwenden.
3. Übertragen Sie den öffentlichen Schlüssel
Als Nächstes müssen Sie den im vorherigen Schritt generierten öffentlichen Schlüssel auf den SSH-Servercomputer übertragen. Wenn auf Ihrem Client-Rechner auch Linux läuft, können Sie dies sehr einfach erreichen, indem Sie den folgenden Befehl ausführen (ersetzen Sie
ssh-copy-id @
Wenn Ihr Client den Befehl ssh-copy-id nicht unterstützt, können Sie stattdessen den folgenden Befehl verwenden. Es ist etwas komplizierter, erzielt aber im Wesentlichen die gleichen Ergebnisse.
Katze ~/.ssh/id_rsa.pub | ssh @ "mkdir ~/.ssh; Katze >> ~/.ssh/authorized_keys"
Sie werden aufgefordert, das Benutzerpasswort für den SSH-Server einzugeben. Wenn die Befehle fehlerfrei ausgeführt werden, wurde Ihr öffentlicher Schlüssel auf den Server kopiert.
4. Passwort-Authentifizierung deaktivieren
Beachten Sie, dass Ihr System immer noch nicht sicherer ist als nach Schritt eins. Obwohl mindestens ein Client für die Verwendung der schlüsselbasierten Authentifizierung konfiguriert ist, lässt dies dennoch Raum für andere Clients, sich mit einem Kennwort zu verbinden. Zum Abschluss deaktivieren wir die Passwortauthentifizierung vollständig. Nach diesem Schritt, nur Computer, die den obigen Prozess durchlaufen haben, können sich mit Ihrem SSH-Server verbinden.
Um die Passwortauthentifizierung zu deaktivieren, bearbeiten Sie die /etc/ssh/sshd_config
Datei in Ihrem bevorzugten Editor. Eine der einfachsten Möglichkeiten, eine eingeschränkte Datei zu bearbeiten, ist wiederum die Verwendung von Terminal. (Ich bin ein Fan von Nano, aber Sie können das verwenden, was Ihnen am besten gefällt.)
sudo nano /etc/ssh/sshd_config
Ungefähr 40 Zeilen ab dem Ende der Datei finden Sie
#PasswortAuthentifizierung ja
Entfernen Sie das Nummernzeichen (#) und ändern Sie die Einstellung wie unten beschrieben auf „Nein“.
PasswortAuthentifizierungsnr
Die endgültige Datei sollte ungefähr so aussehen:
Speichern Sie die Datei, indem Sie STRG+X drücken. Bestätigen Sie die Bearbeitung und den Dateinamen, und Sie sind fast fertig. Starten Sie einfach den SSH-Server neu, um ihn mit diesen neuen Einstellungen auszuführen.
sudo Neustart ssh
Sie werden auch feststellen, dass Ihr Client nicht mehr nach der Passphrase fragt, um Ihren Schlüssel zu entschlüsseln, wenn die Passwortauthentifizierung auf dem Server deaktiviert ist. Nun, da Sie einen sicheren SSH-Server haben, wie wollen Sie ihn verwenden? Als sicherer Dateiserver, eine Remote-Shell oder um andere Dienste über SSH weiterzuleiten? Lass es uns im Kommentarbereich unten wissen!
Bildnachweis: Shutterstock
Ich bin Autorin und Informatikstudentin aus Belgien. Mit einer guten Artikelidee, Buchempfehlung oder Rezeptidee kannst du mir immer einen Gefallen tun.