Die primäre Methode zur Verbindung mit einem Linux-Server ist das SSH-Protokoll . Diese Verbindungsart ist sicher, da alle übertragenen Daten verschlüsselt werden. Um eine SSH-Verbindung herzustellen, muss diese auf dem Zielserver und der Client auf dem Benutzerrechner konfiguriert werden. Es gibt zahlreiche Softwarelösungen für SSH-Verbindungen. Unter Linux ist OpenSSH am weitesten verbreitet, während Windows-Nutzer meist PuTTY verwenden.
Schauen wir uns die Serverkonfiguration am Beispiel von Ubuntu Server 18.04 genauer an und versuchen wir dann, von Linux und Windows aus eine Verbindung zum Server herzustellen.
Alle Aktionen werden über ein normales Benutzerkonto ausgeführt. In diesem Fall haben wir den Benutzer „ mihail “ erstellt, das „ root “-Konto ist standardmäßig deaktiviert.
Serverseitige Einrichtung
Richten Sie das Paket mit diesem Befehl ein:
sudo apt install openssh-server
Stellen Sie nach Abschluss der Installation sicher, dass der Dienst ausgeführt wird. Verwenden Sie diesen Befehl:
systemctl status sshd
Der Status „ Aktiv (läuft) “ bedeutet, dass der Dienst aktiviert ist und normal funktioniert.
Um zu vermeiden, dass eingehende Verbindungen durch die Firewall blockiert werden, deaktivieren Sie sie unbedingt, da wir in diesem Artikel keine Netzwerk-Firewall konfigurieren werden.
Verwenden Sie diesen Befehl:
sudo ufw disable
In diesem Stadium können Sie bereits eine Verbindung zum Server herstellen. Mit den Standardeinstellungen erlaubt der Server die Verbindung zum Standardport 22 mit passwortbasierter Authentifizierung.
SSH-Verbindung von Linux
Der OpenSSH-Client ist unter Linux standardmäßig installiert und erfordert keine zusätzliche manuelle Konfiguration. Die Verbindung kann vom Terminal aus mithilfe des SSH-Befehls hergestellt werden. Parameter sind in diesem Fall Benutzername und IP-Adresse des Remote-Servers. Auf unserem Testserver, den wir als Beispiel verwenden, gibt es nur ein Konto „mihail“, daher verwenden wir dieses.
ssh [email protected]
Bei der ersten Verbindung müssen Sie das Hinzufügen des öffentlichen Serverschlüssels zur Datenbank bestätigen. Antworten Sie dazu mit „ ja “. Anschließend können Sie das Passwort eingeben. Bei erfolgreicher Verbindung wird Ihnen eine Begrüßungsnachricht der Server-Befehlszeile angezeigt. Alle Befehle werden nun direkt auf dem Remote-Server ausgeführt.
SSH von Windows
Öffnen Sie PuTTY und stellen Sie die Verbindungsparameter ein. Stellen Sie sicher, dass der Schalter „ Verbindungstyp “ auf SSH eingestellt ist . Geben Sie die IP-Adresse in das Feld „ Hostname “ ein, den Standardwert 22 in das Feld „ Port “ und klicken Sie auf „ Öffnen “.
Bei der ersten Verbindung werden Sie von Putty aufgefordert, zu bestätigen, dass Sie diesem Server vertrauen. Klicken Sie daher auf „ Ja “.
Nachdem Sie den Benutzernamen und das Passwort eingegeben haben, wird die Befehlszeile des Remote-Servers angezeigt.
Authentifizierung per Schlüssel. Erhöhung des Sicherheitsniveaus
Wenn ein Client versucht, eine sichere Verbindung zum Server über SSH herzustellen, muss der Server den Client authentifizieren (verifizieren), bevor die Verbindung zugelassen wird. Wie bereits erwähnt, wird standardmäßig üblicherweise eine passwortbasierte Authentifizierung verwendet. Diese bietet keine ausreichende Sicherheit, da es immer Möglichkeiten gibt, sie mit Brute-Force-Methoden zu erzwingen. Außerdem ist die Passwortauthentifizierung nicht für SSH-Verbindungen mit Skripten anwendbar.
Für diese Aufgaben gibt es eine spezielle Authentifizierungsmethode per Schlüssel. Dabei generiert der Client private und öffentliche Schlüssel und sendet den öffentlichen Schlüssel an den Server. Anschließend ist kein Passwort mehr erforderlich, um sich mit dem Server zu verbinden, da die Authentifizierung über öffentliche und private Client-Schlüssel erfolgt. Für ein hohes Maß an Sicherheit sollte der Zugriff auf den privaten Schlüssel eingeschränkt werden. Da der private Schlüssel clientseitig gespeichert und nicht über das Netzwerk übertragen wird, gilt diese Methode als sicherer.
Authentifizierung per Schlüssel unter Linux
Generieren wir öffentliche und private Schlüssel auf dem Client mithilfe des Dienstprogramms ssh-keygen. Das Tool schlägt vor, den Pfad zum privaten Schlüssel zu ändern und für zusätzliche Sicherheit eine Passphrase einzugeben. Belassen Sie alle Parameter auf den Standardwerten, indem Sie bei allen Anfragen die Eingabetaste drücken.
Als Ergebnis finden Sie im Home-Verzeichnis im Ordner .ssh zwei generierte Dateien: id_rsa und id_rsa.pub , die jeweils den privaten und den öffentlichen Schlüssel enthalten.
Anschließend müssen Sie den öffentlichen Schlüssel an den Server senden. Kopieren Sie dazu den Inhalt der Datei „ id_rsa.pub “ in die Datei „ ~/.ssh/authorized_keys “ auf dem Server. Am einfachsten geht das mit dem Tool „ ssh-copy-id “. Geben Sie wie bei einer normalen Verbindung den Benutzernamen und die IP-Adresse des Servers ein. Nach Eingabe des Passworts wird der öffentliche Schlüssel des Clients automatisch an den Server kopiert. Führen Sie folgenden Befehl aus:
ssh-copy-id [email protected]
Nachdem Sie dies alles getan haben, müssen Sie für den Server kein Passwort mehr eingeben.
Authentifizierung per Schlüssel unter Windows
Öffnen Sie PUTTYGEN und klicken Sie auf „ Generieren “. Um die Tasten zu generieren, müssen Sie lediglich den Mauszeiger über den Bildschirm bewegen; das Tool generiert die Tasten dann zufällig.
Nachdem die Schlüssel generiert wurden, klicken Sie auf „ Privaten Schlüssel speichern “ und speichern Sie ihn unter dem Namen „Datei mit privatem Schlüssel“ auf Ihrer Festplatte. Sie können einen beliebigen Pfad wählen, müssen diesen aber später in PuTTY angeben. Kopieren Sie anschließend den öffentlichen Schlüssel aus dem oberen Bereich des Fensters.
Senden wir den öffentlichen Schlüssel, indem wir ihn einfach ins Terminal kopieren. Öffnen Sie PuTTY und verbinden Sie sich wie gewohnt mit dem Server. Erstellen wir nun die Datei „ .ssh/authorized_keys “ und beschränken wir den Zugriff anderer Benutzer, sodass sie nur dem Ersteller zur Verfügung steht.
mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
Nachdem Sie die Datei erstellt haben, fügen Sie den öffentlichen Schlüssel des Clients darin ein. Im vorherigen Schritt haben wir den öffentlichen Schlüssel in die Zwischenablage kopiert. Um den Inhalt der Zwischenablage in die Datei zu übertragen, verwenden Sie den Befehl „cat“ und leiten Sie die Ausgabe um.
cat > .ssh/authorized_keys
Nachdem Sie den Befehl eingegeben haben, klicken Sie mit der rechten Maustaste in das Terminalfenster und fügen Sie den Inhalt der Zwischenablage ein. Um die Eingabe zu bestätigen, drücken Sie die Tastenkombination „ Strg+D “ und trennen Sie die Verbindung zum Server.
Geben wir nun den Pfad zum privaten Schlüssel in Putty an und verbinden uns erneut mit dem Server.
Ab sofort müssen Sie nur noch Ihren Benutzernamen eingeben, um sich mit dem Server zu verbinden. Wenn Sie versuchen, sich von einem anderen Gerät aus mit dem Server zu verbinden, das nicht über den richtigen privaten Schlüssel verfügt, fordert der Server ein Passwort an. Nachdem die schlüsselbasierte Authentifizierung eingerichtet wurde, können Sie den Zugriff per Passwort unterbinden.