One place for hosting & domains

      richten

      So richten Sie SSH-Schlüssel unter CentOS 8 ein


      Einführung

      SSH oder Secure Shell ist ein verschlüsseltes Protokoll zur Verwaltung und Kommunikation mit Servern. Wenn Sie mit einem CentOS-Server arbeiten, verbringen Sie wahrscheinlich die meiste Zeit in einer Terminalsitzung, die über SSH mit Ihrem Server verbunden ist.

      In diesem Leitfaden konzentrieren wir uns auf die Einrichtung von SSH-Schlüsseln für einen CentOS 8-Server. SSH-Schlüssel bieten eine einfache und sichere Methode zur Anmeldung bei Ihrem Server und werden für alle Benutzer empfohlen.

      Schritt 1 – Erstellen des RSA-Schlüsselpaars

      Der erste Schritt besteht darin, ein Schlüsselpaar auf dem Client-Rechner (üblicherweise Ihr lokaler Computer) zu erstellen:

      Standardmäßig erzeugt ssh-keygen ein 2048-Bit-RSA-Schlüsselpaar, das für die meisten Anwendungsfälle sicher genug ist (Sie können optional das Flag -b 4096 übergeben, um einen größeren 4096-Bit-Schlüssel zu erzeugen).

      Nach Eingabe des Befehls sollten Sie die folgende Eingabeaufforderung sehen:

      Output

      Generating public/private rsa key pair. Enter file in which to save the key (/your_home/.ssh/id_rsa):

      Drücken Sie die Eingabetaste, um das Schlüsselpaar im Unterverzeichnis .ssh/ in Ihrem Stammverzeichnis zu speichern, oder geben Sie einen alternativen Pfad an.

      Wenn Sie zuvor ein SSH-Schlüsselpaar erstellt haben, wird möglicherweise die folgende Eingabeaufforderung angezeigt:

      Output

      /home/your_home/.ssh/id_rsa already exists. Overwrite (y/n)?

      Wenn Sie den Schlüssel auf der Festplatte überschreiben, können Sie sich nicht mehr mit dem vorherigen Schlüssel authentifizieren. Seien Sie sehr vorsichtig bei der Auswahl von „Ja“, da dies ein destruktiver Prozess ist, der nicht rückgängig gemacht werden kann.

      Sie sollten dann die folgende Eingabeaufforderung sehen:

      Output

      Enter passphrase (empty for no passphrase):

      Hier können Sie optional eine sichere Passphrase eingeben, was dringend empfohlen wird. Eine Passphrase fügt Ihrem Schlüssel eine zusätzliche Sicherheitsebene hinzu, um zu verhindern, dass sich unberechtigte Benutzer anmelden.

      Sie sollten dann die folgende Ausgabe sehen:

      Output

      Your identification has been saved in /your_home/.ssh/id_rsa. Your public key has been saved in /your_home/.ssh/id_rsa.pub. The key fingerprint is: a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host The key's randomart image is: +--[ RSA 2048]----+ | ..o | | E o= . | | o. o | | .. | | ..S | | o o. | | =o.+. | |. =++.. | |o=++. | +-----------------+

      Sie haben jetzt einen öffentlichen und privaten Schlüssel, die Sie zur Authentifizierung verwenden können. Der nächste Schritt besteht darin, den öffentlichen Schlüssel auf Ihren Server zu übertragen, damit Sie sich mit einer auf SSH-Schlüssel basierenden Authentifizierung anmelden können.

      Schritt 2 – Kopieren des öffentlichen Schlüssels auf Ihren CentOS-Server

      Der schnellste Weg zum Kopieren Ihres öffentlichen Schlüssels auf den CentOS-Host ist die Verwendung eines Dienstprogramms namens ssh-copy-id. Diese Methode wird dringend empfohlen, falls sie verfügbar ist. Wenn Sie ssh-copy-id auf Ihrem Client-Rechner nicht verfügbar haben, können Sie eine der beiden nachfolgenden alternativen Methoden verwenden (Kopieren über passwortbasierte SSH oder manuelles Kopieren des Schlüssels).

      Kopieren Ihres öffentlichen Schlüssels mit ssh-copy-id

      Das Tool ssh-copy-id ist in vielen Betriebssystemen standardmäßig enthalten, sodass es möglicherweise auf Ihrem lokalen System zur Verfügung steht. Damit diese Methode funktioniert, müssen Sie bereits über einen passwortbasierten SSH-Zugriff auf Ihren Server verfügen.

      Um dieses Dienstprogramm zu verwenden, müssen Sie nur den Remote-Host, zu dem Sie eine Verbindung herstellen möchten, und das Benutzerkonto angeben, zu dem Sie Passwort-SSH-Zugang haben. Dies ist das Konto, auf das Ihr öffentlicher SSH-Schlüssel kopiert wird:

      • ssh-copy-id username@remote_host

      Möglicherweise wird die folgende Meldung angezeigt:

      Output

      The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes

      Das bedeutet, dass Ihr lokaler Computer den Remote-Host nicht erkennt. Dies geschieht, wenn Sie zum ersten Mal eine Verbindung zu einem neuen Host herstellen. Geben Sie yes ein und drücken Sie die EINGABETASTE, um fortzufahren.

      Als Nächstes durchsucht das Dienstprogramm Ihr lokales Konto nach dem Schlüssel id_rsa.pub, den wir zuvor erstellt haben. Wenn der Schlüssel gefunden wurde, werden Sie zur Eingabe des Passworts für das Konto des Remotebenutzers aufgefordert:

      Output

      /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys username@203.0.113.1's password:

      Geben Sie das Passwort ein (Ihre Eingabe wird aus Sicherheitsgründen nicht angezeigt) und drücken Sie die EINGABETASTE. Das Dienstprogramm stellt mit dem von Ihnen angegebenen Passwort eine Verbindung zum Konto auf dem Remote-Host her. Es kopiert dann den Inhalt Ihres Schlüssels ~/.ssh/id_rsa.pub in die Datei ~/.ssh/authorized_keys.

      Sie sollten die folgende Ausgabe sehen:

      Output

      Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@203.0.113.1'" and check to make sure that only the key(s) you wanted were added.

      Zu diesem Zeitpunkt wurde Ihr Schlüssel id_rsa.pub in das Remote-Konto hochgeladen. Sie können mit Schritt 3 fortfahren.

      Kopieren des öffentlichen Schlüssels mit SSH

      Wenn Sie ssh-copy-id nicht zur Verfügung, aber einen passwortbasierten SSH-Zugang zu einem Konto auf Ihrem Server haben, können Sie Ihre Schlüssel mit einer konventionelleren SSH-Methode hochladen.

      Wir können dazu den Befehl cat verwenden, um den Inhalt des öffentlichen SSH-Schlüssels auf dem lokalen Computer zu lesen und über eine SSH-Verbindung zum Remote-Server weiterzuleiten.

      Auf der anderen Seite können wir sicherstellen, dass das Verzeichnis ~/.ssh existiert und die richtigen Berechtigungen für das von uns verwendete Konto besitzt.

      Wir können dann den Inhalt, den wir übergeben haben, in eine Datei namens authorized_keys in diesem Verzeichnis ausgeben. Wir verwenden das Umleitungssymbol >>, um den Inhalt anzuhängen, anstatt ihn zu überschreiben. Dadurch können wir Schlüssel hinzufügen, ohne zuvor hinzugefügte Schlüssel zu zerstören.

      Der vollständige Befehl sieht wie folgt aus:

      • cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

      Möglicherweise wird die folgende Meldung angezeigt:

      Output

      The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes

      Das bedeutet, dass Ihr lokaler Computer den Remote-Host nicht erkennt. Dies geschieht, wenn Sie zum ersten Mal eine Verbindung zu einem neuen Host herstellen. Geben Sie yes ein und drücken Sie die EINGABETASTE, um fortzufahren.

      Anschließend sollten Sie aufgefordert werden, das Passwort für das Remote-Benutzerkonto einzugeben:

      Output

      username@203.0.113.1's password:

      Nach Eingabe Ihres Passworts wird der Inhalt Ihres Schlüssels id_rsa.pub an das Ende der Datei authorized_keys des Kontos des Remote-Benutzers kopiert. Wenn dies erfolgreich war, fahren Sie mit Schritt 3 fort.

      Manuelles Kopieren des öffentlichen Schlüssels

      Wenn Sie keinen passwortbasierten SSH-Zugriff auf Ihren Server haben, müssen Sie den obigen Vorgang manuell ausführen.

      Wir werden den Inhalt Ihrer Datei id_rsa.pub manuell an die Datei ~/.ssh/authorized_keys auf Ihrem Remote-Computer anhängen.

      Um den Inhalt Ihres Schlüssels id_rsa.pub anzuzeigen, geben Sie Folgendes in Ihren lokalen Computer ein:

      Der Inhalt des Schlüssels wird angezeigt, der ungefähr so aussehen sollte:

      Output

      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== sammy@host

      Melden Sie sich mit der Ihnen zur Verfügung stehenden Methode an Ihrem Remote-Host an.

      Sobald Sie Zugriff auf Ihr Konto auf dem Remote-Server haben, sollten Sie sicherstellen, dass das Verzeichnis ~/.ssh vorhanden ist. Dieser Befehl erstellt bei Bedarf das Verzeichnis oder unternimmt nichts, wenn es bereits vorhanden ist:

      Jetzt können Sie die Datei authorized_keys in diesem Verzeichnis erstellen oder ändern. Sie können den Inhalt Ihrer Datei id_rsa.pub an das Ende der Datei authorized_keys anfügen und diese bei Bedarf mit folgendem Befehl erstellen:

      • echo public_key_string >> ~/.ssh/authorized_keys

      Ersetzen Sie im obigen Befehl public_key_string​​​​ durch die Ausgabe des Befehls cat~/.ssh/id_rsa.pub, den Sie auf Ihrem lokalen System ausgeführt haben. Sie sollte mit ssh-rsa AAAA... beginnen.

      Schließlich stellen wir sicher, dass für das Verzeichnis ~/.ssh und die Datei authorized_keys die folgenden Berechtigungen festgelegt sind:

      Dadurch werden rekursiv alle „Gruppen-“ und „anderen“ Berechtigungen für das Verzeichnis ~/.ssh/ entfernt.

      Wenn Sie das Konto root zum Einrichten von Schlüsseln für ein Benutzerkonto verwenden, ist es auch wichtig, dass das Verzeichnis ~/.ssh dem Benutzer und nicht root gehört:

      • chown -R sammy:sammy ~/.ssh

      In diesem Tutorial heißt unser Benutzer sammy; aber Sie sollten den entsprechenden Benutzernamen in den obigen Befehl einsetzen.

      Wir können jetzt eine schlüsselbasierte Authentifizierung mit unserem CentOS-Server versuchen.

      Schritt 3 – Anmelden an Ihrem CentOS-Server mit SSH-Schlüsseln

      Wenn Sie eines der oben genannten Verfahren erfolgreich abgeschlossen haben, sollten Sie sich jetzt ohne das Passwort des Remote-Kontos am Remote-Host anmelden können.

      Der anfängliche Prozess ist derselbe wie bei der passwortbasierten Authentifizierung:

      Wenn Sie zum ersten Mal eine Verbindung zu diesem Host herstellen (wenn Sie die letzte Methode oben verwendet haben), wird möglicherweise Folgendes angezeigt:

      Output

      The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes

      Das bedeutet, dass Ihr lokaler Computer den Remote-Host nicht erkennt. Geben Sie yes ein und drücken Sie dann die EINGABETASTE, um fortzufahren.

      Wenn Sie bei der Erstellung Ihres Schlüsselpaars in Schritt 1 keine Passphrase angegeben haben, werden Sie sofort angemeldet. Wenn Sie eine Passphrase angegeben haben, werden Sie aufgefordert, diese jetzt einzugeben. Nach der Authentifizierung sollte sich eine neue Shell-Sitzung mit dem konfigurierten Konto auf dem CentOS-Server für Sie öffnen.

      Wenn die schlüsselbasierte Authentifizierung erfolgreich war, fahren Sie fort, um zu erfahren, wie Sie Ihr System durch Deaktivieren der passwortbasierten Authentifizierung Ihres SSH-Servers weiter sichern können.

      Schritt 4 – Deaktivieren der Passwortauthentifizierung auf Ihrem Server

      Wenn Sie sich mit SSH ohne Passwort bei Ihrem Konto anmelden konnten, haben Sie die auf SSH-Schlüssel basierte Authentifizierung für Ihr Konto erfolgreich konfiguriert. Ihr passwortbasierter Authentifizierungsmechanismus ist jedoch weiterhin aktiv. Dies bedeutet, dass Ihr Server weiterhin Brute-Force-Angriffen ausgesetzt ist.

      Stellen Sie vor dem Ausführen der in diesem Abschnitt beschriebenen Schritte sicher, dass entweder die auf SSH-Schlüssel basierte Authentifizierung für das Root-Konto auf diesem Server konfiguriert ist oder dass vorzugsweise die auf SSH-Schlüssel basierte Authentifizierung für ein Konto ohne Rootberechtigung und mit sudo-Privilegien konfiguriert ist. Durch diesen Schritt werden passwortbasierte Anmeldungen gesperrt. Daher ist es von entscheidender Bedeutung, dass Sie weiterhin über Administratorrechte verfügen.

      Sobald Sie bestätigt haben, dass Ihr Remote-Konto über Administratorrechte verfügt, melden Sie sich mit SSH-Schlüsseln bei Ihrem Remote-Server an, entweder als Root-Benutzer oder mit einem Konto mit sudo-Privilegien. Öffnen Sie dann die Konfigurationsdatei des SSH-Daemons:

      • sudo vi /etc/ssh/sshd_config

      Suchen Sie in der Datei nach einer Anweisung namens PasswordAuthentication. Dies kann mit einem # Hash auskommentiert werden. Drücken Sie i, um vi in den Einfügemodus zu versetzen, kommentieren Sie dann die Zeile aus und setzen Sie den Wert auf no. Dadurch wird die Möglichkeit deaktiviert, sich über SSH mit Kontopasswörtern anzumelden:

      /etc/ssh/sshd_config

      ...
      PasswordAuthentication no
      ...
      

      Wenn Sie mit den Änderungen fertig sind, drücken Sie ESC und dann :wq, um die Änderungen in die Datei zu schreiben und diese zu verlassen. Um diese Änderungen tatsächlich zu implementieren, müssen wir den sshd-Dienst neu starten:

      • sudo systemctl restart sshd

      Öffnen Sie vorsichtshalber ein neues Terminalfenster und testen Sie, ob der SSH-Dienst ordnungsgemäß funktioniert, bevor Sie Ihre aktuelle Sitzung schließen:

      Nachdem Sie die ordnungsgemäße Ausführung Ihres SSH-Dienstes überprüft haben, können Sie alle aktuellen Serversitzungen sicher schließen.

      Der SSH-Daemon auf Ihrem CentOS-Server reagiert jetzt nur noch auf SSH-Schlüssel. Die passwortbasierte Authentifizierung wurde erfolgreich deaktiviert.

      Zusammenfassung

      Auf Ihrem Server sollte jetzt die auf SSH-Schlüsseln basierte Authentifizierung konfiguriert sein, damit Sie sich anmelden können, ohne ein Kontopasswort anzugeben.

      Wenn Sie mehr über das Arbeiten mit SSH erfahren möchten, sehen Sie sich unseren Leitfaden über SSH-Grundlagen an.



      Source link

      So richten Sie die Code-Server-Cloud-IDE-Plattform unter CentOS 7 ein


      Der Autor wählte den Free and Open Source Fund, um eine Spende im Rahmen des Programms Write for DOnations zu erhalten.

      Einführung

      Die Erstellung und Einführung von Cloud-IDE-Plattformen (IDE: Integrated Development Environment) nimmt zu, da Entwickler-Tools zunehmend cloudbasiert sind. Cloud-IDEs ermöglichen Entwicklerteams eine Zusammenarbeit in Echtzeit in einer einheitlichen Entwicklungsumgebung, die Inkompatibilitäten minimiert und die Produktivität steigert. Cloud-IDEs sind über Webbrowser zugänglich und auf allen modernen Geräten verfügbar.

      Code-Server ist Microsoft Visual Studio Code, der auf einem Remote-Server läuft und auf den Sie direkt von Ihrem Browser aus zugreifen können. Visual Studio Code ist ein moderner Code-Editor mit integrierter Git-Unterstützung, einem Code-Debugger, intelligenter automatischer Vervollständigung sowie anpassbaren und erweiterbaren Funktionen. Dadurch können Sie verschiedene Geräte verwenden, die verschiedene Betriebssysteme ausführen und immer eine einheitliche Entwicklungsumgebung haben.

      In diesem Tutorial richten Sie die Code-Server-Cloud-IDE-Plattform auf Ihrem CentOS-7-Rechner ein und machen sie auf Ihrer Domäne verfügbar, geschützt durch kostenlose Let’s Encrypt TLS-Zertifikate. Zum Schluss wird Microsoft Visual Studio Code auf Ihrem CentOS-7-Server ausgeführt, ist auf Ihrer Domäne verfügbar und mit einem Passwort geschützt.

      Voraussetzungen

      • Ein Server mit CentOS 7 mit mindestens 2 GB RAM, Root-Zugriff und einem Sudo-Konto ohne Rootberechtigung. Sie können dies einrichten, indem Sie diesem Leitfaden zur Ersteinrichtung des Servers folgen.

      • Nginx, das auf Ihrem Server installiert ist. Eine Anleitung hierzu finden Sie in So installieren Sie Nginx unter CentOS 7.

      • Die beiden folgenden DNS-Einträge wurden für Ihren Server eingerichtet. Sie finden in dieser Einführung in DigitalOcean DNS Details dazu, wie Sie sie hinzufügen können.

        • Einen Eintrag mit your-domain, der auf die öffentliche IP-Adresse Ihres Servers verweist.
        • Einen Eintrag mit www.your-domain, der auf die öffentliche IP-Adresse Ihres Servers verweist.
      • Einen vollständig registrierten Domänennamen für den Host Code-Server, der auf Ihren Server verweist. Dieses Tutorial verwendet durchgehend code-server.your-domain. Sie können einen Domänennamen unter Namecheap günstig erwerben oder einen kostenlosen von Freenom herunterladen oder einfach die Domänenregistrierungsstelle Ihrer Wahl verwenden.

      Schritt 1 – Installation des Code-Servers

      In diesem Abschnitt richten Sie Code-Server auf Ihrem Server ein. Dabei laden Sie die neueste Version herunter und erstellen einen systemd-Dienst, der Code-Server immer im Hintergrund ausführt. Des Weiteren geben Sie eine Neustart-Regel für den Dienst an, damit Code-Server nach möglichen Abstürzen oder Neustarts verfügbar bleibt.

      Sie speichern alle Daten über Code-Server in einem Ordner namens ~/code-server. Erstellen Sie ihn, indem Sie folgenden Befehl ausführen:

      Navigieren Sie dorthin:

      Gehen Sie auf die Seite Github releases von Code-Server und wählen Sie den neuesten Linux-Build (die Datei enthält „linux“ in ihrem Namen). Als dieser Text verfasst wurde, war die neueste Version 2.1692. Laden Sie ihn mit curl herunter, indem Sie folgenden Befehl ausführen:

      • curl -LO https://github.com/cdr/code-server/releases/download/2.1692-vsc1.39.2/code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz

      Entpacken Sie dann das Archiv durch Ausführung von:

      • tar -xzvf code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz

      Sie erhalten einen Ordner mit dem gleichen Namen wie die von Ihnen heruntergeladene Originaldatei, die die ausführbare Datei des Code-Servers enthält. Navigieren Sie dorthin:

      • cd code-server2.1692-vsc1.39.2-linux-x86_64

      Kopieren Sie die ausführbare Datei des Code-Servers in /usr/local/bin, damit Sie systemweit mit dem folgenden Befehl darauf zugreifen können:

      • sudo cp code-server /usr/local/bin

      Erstellen Sie als Nächstes einen Ordner für Code-Server, in dem er Benutzerdaten speichert:

      • sudo mkdir /var/lib/code-server

      Nachdem Sie Code-Server heruntergeladen und systemweit verfügbar gemacht haben, erstellen Sie einen systemd-Dienst für die ständige Ausführung des Code-Servers im Hintergrund.

      Speichern Sie die Dienstkonfiguration in einer Datei namens code-server.service im Verzeichnis /usr/lib/systemd/system, in dem systemd seine Dienste speichert. Erstellen Sie diese mit dem vi-Editor:

      • sudo vi /usr/lib/systemd/system/code-server.service

      Fügen Sie die folgenden Zeilen hinzu:

      /usr/lib/systemd/system/code-server.service

      [Unit]
      Description=code-server
      After=nginx.service
      
      [Service]
      Type=simple
      Environment=PASSWORD=your_password
      ExecStart=/usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password
      Restart=always
      
      [Install]
      WantedBy=multi-user.target
      

      Hier geben Sie zunächst die Beschreibung des Dienstes an. Dann bestätigen Sie, dass der Dienst nginx vor diesem gestartet werden muss. Nach dem Abschnitt [Unit] definieren Sie die Art des Dienstes (simple bedeutet, dass der Prozess einfach ausgeführt werden soll) und geben den Befehl an, der ausgeführt wird.

      Außerdem geben Sie an, dass die globale ausführbare Datei des Code-Servers mit einigen Argumenten gestartet werden soll, die für Code-Server spezifisch sind. --host 127.0.0.1 bindet ihn an localhost, damit er nur von Ihrem Server aus direkt zugänglich ist. --user-data-dir /var/lib/code-server legt Ihr Benutzerdaten-Verzeichnis fest und --auth password spezifiziert, dass es Besucher mit einem Passwort authentifizieren soll, das in der Umgebungsvariable PASSWORD in der Zeile darüber angegeben ist.

      Denken Sie daran, your_password durch Ihr gewünschtes Passwort zu ersetzen. Geben Sie :wq ein und drücken Sie die EINGABETASTE, um die Datei zu speichern und zu schließen.

      Die nächste Zeile teilt systemd mit, dass Code-Server bei allen Störungen (z. B. bei Absturz oder wenn der Vorgang beendet wird) neu starten soll. Der Abschnitt [Install] weist systemd an, diesen Dienst zu starten, wenn Sie sich auf Ihrem Server anmelden können.

      Starten Sie den Code-Server-Dienst durch Ausführung des folgenden Befehls:

      • sudo systemctl start code-server

      Überprüfen Sie, ob er korrekt gestartet wurde, indem Sie seinen Status beachten:

      • sudo systemctl status code-server

      Sie sehen eine Ausgabe, die der nachfolgenden ähnelt:

      Output

      ● code-server.service - code-server Loaded: loaded (/usr/lib/systemd/system/code-server.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2019-12-19 19:24:42 UTC; 5s ago Main PID: 1668 (code-server) CGroup: /system.slice/code-server.service ├─1668 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password └─1679 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password Dec 19 19:24:42 code-server-centos systemd[1]: Started code-server. Dec 19 19:24:44 code-server-centos code-server[1668]: info Server listening on http://127.0.0.1:8080 Dec 19 19:24:44 code-server-centos code-server[1668]: info - Using custom password for authentication Dec 19 19:24:44 code-server-centos code-server[1668]: info - Not serving HTTPS

      Damit Code-Server nach einem Server-Neustart automatisch startet, aktivieren Sie seinen Dienst durch Ausführung des folgenden Befehls:

      • sudo systemctl enable code-server

      In diesem Schritt haben Sie Code-Server heruntergeladen und global verfügbar gemacht. Dann haben Sie einen systemd-Dienst für ihn erstellt und aktiviert, damit Code-Server bei jedem Server-Boot startet. Als Nächstes machen Sie diesen auf Ihrer Domäne verfügbar, indem Sie Nginx konfigurieren, um als Reverseproxy zwischen Besucher und Code-Server zu fungieren.

      Schritt 2 – Code-Server auf Ihrer Domäne verfügbar machen

      In diesem Abschnitt konfigurieren Sie Nginx als Reverseproxy für den Code-Server.

      Wie Sie im Schritt Nginx-Voraussetzung erfahren haben, werden seine Website-Konfigurationsdateien unter /etc/nginx/conf.d gespeichert und beim Start von Nginx automatisch geladen.

      Sie speichern die Konfiguration, um Code-Server auf Ihrer Domäne in einer Datei namens Code-server.conf unter /etc/nginx/conf.d verfügbar zu machen. Beginnen Sie mit dem Erstellen mithilfe Ihres Editors:

      • sudo vi /etc/nginx/conf.d/code-server.conf

      Fügen Sie die folgenden Zeilen hinzu:

      /etc/nginx/conf.d/code-server.conf

      server {
          listen 80;
          listen [::]:80;
      
          server_name code-server.your-domain;
      
          location / {
              proxy_pass http://localhost:8080/;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection upgrade;
              proxy_set_header Accept-Encoding gzip;
          }
      }
      

      Ersetzen Sie code-server.your-domain​​​ durch Ihre gewünschte Domäne, speichern und schließen Sie dann die Datei.

      In dieser Datei definieren Sie, dass Nginx auf den HTTP-Port 80 lauschen soll. Dann geben Sie einen server_name an, der Nginx mitteilt, für welche Domäne Anfragen akzeptiert und diese spezielle Konfiguration angewendet werden sollen.

      Für den Root-Ort (/) geben Sie im nächsten Block an, dass Anfragen an den Code-Server auf localhost:8080 ausgeführt werden sollen. Die nächsten drei Zeilen (ab proxy_set_header) weisen Nginx an, einige HTTP-Anforderungsheader zu übertragen, die für das korrekte Funktionieren von WebSockets benötigt werden, die Code-Server extensiv verwendet.

      Um die Gültigkeit der Konfiguration zu testen, führen Sie folgenden Befehl aus:

      Sie sehen die folgende Ausgabe:

      Output

      nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

      Damit die Konfiguration wirksam werden kann, müssen Sie Nginx neu starten:

      • sudo systemctl restart nginx

      Bei CentOS 7 ist SELinux eingeschaltet und hat einen strengen Regelsatz, der Nginx standardmäßig nicht erlaubt, sich an lokale TCP-Sockets anzuschließen. Nginx muss dies tun, um als Reverseproxy für den Code-Server zu fungieren. Führen Sie folgenden Befehl aus, um die Regel dauerhaft abzuschwächen:

      • sudo setsebool httpd_can_network_connect 1 -P

      Navigieren Sie anschließend in Ihrem Browser zu der Domäne, die Sie für Code-Server verwendet haben. Sie erhalten die Anmeldeaufforderung des Code-Servers.

      Eingabeaufforderung des Code-Server-Login

      Code-Server fragt Sie nach Ihrem Passwort. Geben Sie dasjenige ein, das Sie im vorigen Schritt festgelegt haben und drücken Sie Enter IDE. Jetzt rufen Sie Code-Server auf und sehen sofort seine Editor-GUI.

      Code-Server GUI

      Ihre Code-Server-Installation ist nun auf Ihrer Domäne verfügbar. Im nächsten Schritt sichern Sie sie durch Anwendung eines kostenlosen Let’s Encrypt TLS-Zertifikates.

      Schritt 3 – Sicherung Ihrer Domäne

      In diesem Abschnitt sichern Sie Ihre Domäne mit einem Let’s Encrypt TLS-Zertifikat, das Sie mit Certbot bereitstellen.

      Um die neueste Version von Certbot und dessen Nginx-Plugin zu installieren, führen Sie folgenden Befehl aus:

      • sudo yum install certbot python2-certbot-nginx

      Um Zertifikate für Ihre Domäne anzufordern, führen Sie folgenden Befehl aus:

      • sudo certbot --nginx -d code-server.your-domain

      In diesem Befehl führen Sie certbot aus, um Zertifikate für Ihre Domäne anzufordern – Sie übergeben den Domänennamen mit dem Parameter -d. Das Flag --nginx weist sie an, eine eine automatische Änderung der Nginx-Site-Konfiguration zur Unterstützung von HTTPS vorzunehmen. Vergessen Sie nicht, code-server.your-domain durch Ihren Domänennamen zu ersetzen.

      Wenn Sie Certbot zum ersten Mal ausführen, werden Sie aufgefordert, eine E-Mail-Adresse für dringende Bekanntmachungen anzugeben und die AGBs von EFF zu akzeptieren. Certbot fordert daraufhin Zertifikate für Ihre Domäne von Let’s Encrypt an. Dann werden Sie gefragt, ob Sie den gesamten HTTP-Verkehr an HTTPS weiterleiten möchten:

      Output

      Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

      Es wird empfohlen, die zweite Option auszuwählen, um die Sicherheit zu maximieren. Nachdem Sie Ihre Auswahl eingegeben haben, drücken Sie die EINGABETASTE.

      Die Ausgabe sieht ungefähr wie folgt aus:

      Output

      IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/code-server.your-domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/code-server.your-domain/privkey.pem Your cert will expire on ... To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

      Das bedeutet, dass Certbot TLS-Zertifikate erfolgreich generiert und auf die Nginx-Konfiguration für Ihre Domäne angewendet hat. Sie können Ihre Code-Server-Domäne nun in Ihrem Browser neu laden und werden links von der Websiteadresse ein Schloss sehen: Das bedeutet, dass Ihre Verbindung korrekt gesichert ist.

      Jetzt lassen Sie Certbot die Zertifikate automatisch erneuern, bevor diese ablaufen. Verwenden Sie zur täglichen Überprüfung der Erneuerung cron, ein Standard-System-Dienst für das Ausführen regelmäßiger Aufträge. Sie weisen cron an, indem Sie eine Datei namens crontab öffnen und bearbeiten:

      Mit diesem Befehl öffnen Sie den Standard crontab, der derzeit eine leere Textdatei ist. Fügen Sie folgende Zeile hinzu und speichern und schließen Sie diese im Anschluss:

      crontab

      . . .
      15 3 * * * /usr/bin/certbot renew --quiet
      

      15 3 * * * führt folgenden Befehl jeden Tag um 3:15 Uhr aus. Sie können jede beliebige Uhrzeit einstellen.

      Mit dem Befehl renew für Certbot werden alle auf dem System installierten Zertifikate überprüft und alle aktualisiert, die in weniger als dreißig Tagen ablaufen. --quiet​​​ befiehlt Certbot, keine Informationen auszugeben oder auf die Eingabe von Benutzern zu warten.

      cron wird diesen Befehl nun täglich ausführen. Alle installierten Zertifikate werden automatisch erneuert und neu geladen, wenn sie in dreißig Tagen oder weniger ablaufen.

      Nachdem Code-Server nun auf Ihrer Domäne über einen gesicherten Nginx-Reverseproxy zugänglich ist, können Sie die Benutzeroberfläche von Code-Server überprüfen.

      Schritt 4 – Benutzung der Code-Server-Benutzeroberfläche

      In diesem Abschnitt werden Sie einige der Funktionen der Code-Server-Benutzeroberfläche verwenden. Da Code-Server Visual Studio Code ist, der in der Cloud ausgeführt wird, hat er dieselbe Benutzeroberfläche wie die eigenständige Desktop-Edition.

      Auf der linken Seite der IDE befindet sich eine vertikale Reihe von sechs Schaltflächen, welche die am häufigsten verwendeten Funktionen in einem Seitenbereich namens Aktivitätsleiste öffnen.

      Code-Server-GUI – Seitenbereich

      Diese Leiste ist anpassbar: Sie können diese Ansichten in eine andere Reihenfolge bringen oder von der Leiste entfernen. Standardmäßig öffnet die erste Schaltfläche das allgemeine Menü in einem Dropdown, während die zweite Ansicht das Feld Explorer öffnet, das eine baumartige Navigation der Struktur des Projekts bereitstellt. Hier können Sie Ihre Ordner und Dateien verwalten und sie je nach Bedarf erstellen, löschen, verschieben und umbenennen. Die nächste Ansicht bietet Zugriff auf die Funktion Suchen und Ersetzen.

      Im Anschluss daran wird in der standardmäßigen Reihenfolge Ihre Ansicht der Quellcodeverwaltungssysteme wie Git angezeigt. Visual-Studio-Code unterstützt auch andere Quellcodeverwaltungsanbieter. Weitere Anweisungen für Arbeitsabläufe bei Quellcodeverwaltung mit dem Editor finden Sie in dieser Dokumentation.

      Git-Bereich mit Kontextmenü geöffnet

      Die Debugger-Option auf der Aktivitätsleiste bietet alle gängigen Aktionen zum Debuggen in der Kontrollleiste. Visual Studio Code bietet integrierte Unterstützung für den Laufzeit-Debugger Node.js und jede Sprache, die zu Javascript transpiliert. Für weitere Sprachen können Sie Erweiterungen für den erforderlichen Debugger installieren. Debugging-Konfigurationen können Sie in der Datei launch.json speichern.

      Debugger-Ansicht mit launch.json geöffnet

      Die letzte Ansicht in der Aktivitätsleiste bietet ein Menü zum Zugriff auf verfügbare Erweiterungen auf dem Marketplace.

      Code-Server-GUI – Registerkarten

      Der zentrale Teil der GUI ist Ihr Editor, den Sie für Ihre Codebearbeitung durch Registerkarten trennen können. Ihre Bearbeitungsansicht können ein Rastersystem oder nebeneinander angeordnete Dateien sein.

      Editor-Rasteransicht

      Nach der Erstellung einer neuen Datei über das Menü File öffnet sich eine leere Datei in einer neuen Registerkarte. Sobald sie gespeichert ist, wird der Name der Datei im Seitenfeld Explorer sichtbar. Sie können Ordner durch einen Rechtsklick auf die Seitenleiste Explorer und durch Klicken auf New Folder erstellen. Sie können einen Ordner erweitern, indem Sie auf seinen Namen klicken, sowie Dateien und Ordner in obere Teile der Hierarchie ziehen und ablegen, um sie an einen neuen Ort zu verschieben.

      Code-Server-GUI – New Folder

      Sie können Zugriff auf ein Terminal erhalten, indem Sie STRG+UMSCHALT+` eingeben oder im oberen Dropdownmenü auf Terminal klicken und New Terminal auswählen. Das Terminal öffnet sich in einem unteren Feld und sein Arbeitsverzeichnis wird auf den Arbeitsbereich des Projekts festgelegt, der die im Seitenbereich Explorer gezeigten Dateien und Ordner enthält.

      Sie haben sich nun einen Überblick über die Code-Server-Benutzeroberfläche und einige der am häufigsten verwendeten Funktionen verschafft.

      Zusammenfassung

      Code-Server, eine vielseitige Cloud-IDE, ist jetzt auf Ihrem CentOS-7-Server installiert, auf Ihrer Domäne verfügbar und mit Let’s-Encrypt-Zertifikaten gesichert. Jetzt können Sie einzeln oder als Team an Projekten arbeiten. Die Ausführung einer Cloud-IDE gibt Ressourcen auf Ihrem lokalen Computer frei und ermöglicht es Ihnen, die Ressourcen bei Bedarf zu skalieren. Weitere Informationen finden Sie in der Visual Studio Code Dokumentation, wo Sie zusätzliche Funktionen und detaillierte Anweisungen zu anderen Komponenten des Code-Servers nachlesen können.

      Wenn Sie Code-Server auf Ihrem DigitalOcean Kubernetes-Cluster ausführen möchten, sehen Sie sich unser Tutorial So richten Sie die Code-Server-Cloud-IDE-Plattform auf DigitalOcean Kubernetes ein an.



      Source link

      So richten Sie die Code-Server-Cloud-IDE-Plattform unter Debian 10 ein


      Der Autor wählte den Free and Open Source Fund, um eine Spende im Rahmen des Programms Write for DOnations zu erhalten.

      Einführung

      Die Erstellung und Einführung von Cloud-IDE-Plattformen (IDE: Integrated Development Environment) nimmt zu, da Entwickler-Tools zunehmend cloudbasiert sind. Cloud-IDEs ermöglichen Entwicklerteams eine Zusammenarbeit in Echtzeit in einer einheitlichen Entwicklungsumgebung, die Inkompatibilitäten minimiert und die Produktivität steigert. Cloud-IDEs sind über Webbrowser zugänglich und auf allen modernen Geräten verfügbar.

      Code-Server ist Microsoft Visual Studio Code, der auf einem Remote Server läuft und auf den Sie direkt von Ihrem Browser aus zugreifen können. Visual Studio Code ist ein moderner Code-Editor mit integrierter Git-Unterstützung, einem Code-Debugger, intelligenter automatischer Vervollständigung sowie anpassbaren und erweiterbaren Funktionen. Dadurch können Sie verschiedene Geräte verwenden, die verschiedene Betriebssysteme ausführen und immer eine einheitliche Entwicklungsumgebung haben.

      In diesem Tutorial richten Sie die Code-Server-Cloud-IDE-Plattform auf Ihrem Debian-10-Rechner ein und machen sie auf Ihrer Domäne verfügbar, geschützt durch kostenlose Let’s Encrypt TLS-Zertifikate. Zum Schluss wird Microsoft Visual Studio Code auf Ihrem Debian-10-Server ausgeführt, ist auf Ihrer Domäne verfügbar und mit einem Passwort geschützt.

      Voraussetzungen

      • Ein Server mit Debian 10 mit mindestens 2 GB RAM, Root-Zugriff und einem Sudo-Konto ohne Rootberechtigung. Sie können dies einrichten, indem Sie diesem Leitfaden zur Ersteinrichtung des Servers folgen.

      • Nginx, das auf Ihrem Server installiert ist. Führen Sie dazu die Schritte 1 bis 4 aus So installieren Sie Nginx auf Debian 10 aus.

      • Die beiden folgenden DNS-Einträge wurden für Ihren Server eingerichtet. Sie finden in dieser Einführung in DigitalOcean DNS Details dazu, wie Sie sie hinzufügen können.

        • Einen Eintrag mit your-domain, der auf die öffentliche IP-Adresse Ihres Servers verweist.
        • Einen Eintrag mit www.your-domain, der auf die öffentliche IP-Adresse Ihres Servers verweist.
      • Einen vollständig registrierten Domänennamen für den Host Code-Server, der auf Ihren Server verweist. Dieses Tutorial verwendet durchgehend code-server.your-domain. Sie können einen Domänennamen unter Namecheap günstig erwerben oder einen kostenlosen von Freenom herunterladen oder einfach die Domänenregistrierungsstelle Ihrer Wahl Domänennamen

      Schritt 1 – Installation des Code-Servers

      In diesem Abschnitt richten Sie Code-Server auf Ihrem Server ein. Dabei laden Sie die neueste Version herunter und erstellen einen systemd-Dienst, der Code-Server immer im Hintergrund ausführt. Des Weiteren geben Sie eine Neustart-Regel für den Dienst an, damit Code-Server nach möglichen Abstürzen oder Neustarts verfügbar bleibt.

      Sie speichern alle Daten über Code-Server in einem Ordner namens ~/code-server. Erstellen Sie ihn, indem Sie folgenden Befehl ausführen:

      Navigieren Sie dorthin:

      Gehen Sie auf die Seite Github releases von Code-Server und wählen Sie den neuesten Linux-Build (die Datei enthält linux in ihrem Namen). Als dieser Text verfasst wurde, war die neueste Version 2.1692. Laden Sie ihn mit wget herunter, indem Sie folgenden Befehl ausführen:

      • wget https://github.com/cdr/code-server/releases/download/2.1692-vsc1.39.2/code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz

      Entpacken Sie dann das Archiv durch Ausführung von:

      • tar -xzvf code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz

      Sie erhalten einen Ordner mit dem gleichen Namen wie die von Ihnen heruntergeladene Originaldatei, die die ausführbare Datei des Code-Servers enthält. Navigieren Sie dorthin:

      • cd code-server2.1692-vsc1.39.2-linux-x86_64

      Kopieren Sie die ausführbare Datei des Code-Servers in /usr/local/bin, damit Sie systemweit mit dem folgenden Befehl darauf zugreifen können:

      • sudo cp code-server /usr/local/bin

      Erstellen Sie als Nächstes einen Ordner für Code-Server, in dem er Benutzerdaten speichert:

      • sudo mkdir /var/lib/code-server

      Nachdem Sie Code-Server heruntergeladen und systemweit verfügbar gemacht haben, erstellen Sie einen systemd-Dienst für die ständige Ausführung des Code-Servers im Hintergrund.

      Speichern Sie die Dienstkonfiguration in einer Datei namens code-server.service im Verzeichnis /lib/systemd/system, in dem systemd seine Dienste speichert. Erstellen Sie sie mit Ihrem Texteditor:

      • sudo nano /lib/systemd/system/code-server.service

      Fügen Sie die folgenden Zeilen hinzu:

      /lib/systemd/system/code-server.service

      [Unit]
      Description=code-server
      After=nginx.service
      
      [Service]
      Type=simple
      Environment=PASSWORD=your_password
      ExecStart=/usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password
      Restart=always
      
      [Install]
      WantedBy=multi-user.target
      

      Hier geben Sie zunächst die Beschreibung des Dienstes an. Dann bestätigen Sie, dass der Dienst nginx vor diesem gestartet werden muss. Nach dem Abschnitt [Unit] definieren Sie die Art des Dienstes (simple bedeutet, dass der Prozess einfach ausgeführt werden soll) und geben den Befehl an, der ausgeführt wird.

      Außerdem geben Sie an, dass die globale ausführbare Datei des Code-Servers mit einigen Argumenten gestartet werden soll, die für Code-Server spezifisch sind. --host 127.0.0.1 bindet ihn an localhost, damit er nur von ihrem Server aus direkt zugänglich ist. --user-data-dir /var/lib/code-server legt Ihr Benutzerdaten-Verzeichnis fest und --auth password spezifiziert, dass es Besucher mit einem Passwort authentifizieren soll, das in der Umgebungsvariable PASSWORD in der Zeile darüber angegeben ist.

      Vergessen Sie nicht, your_password durch Ihr gewünschtes Passwort zu ersetzen. Speichern und schließen Sie danach die Datei.

      Die nächste Zeile teilt systemd mit, dass Code-Server bei allen Störungen (z. B. bei Absturz oder wenn der Vorgang beendet wird) neu starten soll. Der Abschnitt [Install] weist systemd an, diesen Dienst zu starten, wenn Sie sich auf Ihrem Server anmelden können.

      Starten Sie den Code-Server-Dienst durch Ausführung des folgenden Befehls:

      • sudo systemctl start code-server

      Überprüfen Sie, ob er korrekt gestartet wurde, indem Sie seinen Status beachten:

      • sudo systemctl status code-server

      Sie sehen eine Ausgabe, die der nachfolgenden ähnelt:

      Output

      ● code-server.service - code-server Loaded: loaded (/lib/systemd/system/code-server.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2019-12-19 16:56:05 UTC; 4s ago Main PID: 1790 (code-server) Tasks: 23 (limit: 1168) Memory: 74.6M CGroup: /system.slice/code-server.service ├─1790 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password └─1801 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password Dec 19 16:56:05 code-server-debian10 systemd[1]: Started code-server. Dec 19 16:56:06 code-server-debian10 code-server[1790]: info Server listening on http://127.0.0.1:8080 Dec 19 16:56:06 code-server-debian10 code-server[1790]: info - Using custom password for authentication Dec 19 16:56:06 code-server-debian10 code-server[1790]: info - Not serving HTTPS

      Damit Code-Server nach einem Server-Neustart automatisch startet, aktivieren Sie seinen Dienst durch Ausführung des folgenden Befehls:

      • sudo systemctl enable code-server

      In diesem Schritt haben Sie Code-Server heruntergeladen und global verfügbar gemacht. Dann haben Sie einen systemd-Dienst für ihn erstellt und aktiviert, damit Code-Server bei jedem Server-Boot startet. Als Nächstes machen Sie diesen auf Ihrer Domäne verfügbar, indem Sie Nginx konfigurieren, um als Reverseproxy zwischen Besucher und Code-Server zu fungieren.

      Schritt 2 – Code-Server auf Ihrer Domäne verfügbar machen

      In diesem Abschnitt konfigurieren Sie Nginx als Reverseproxy für den Code-Server.

      Wie Sie im Schritt Nginx-Voraussetzung erfahren haben, werden seine Site-Konfigurationsdateien unter /etc/nginx/sites-available gespeichert und müssen später symbolisch mit /etc/nginx/sites-enabled verknüpft werden, um aktiv zu sein.

      Speichern Sie die Konfiguration, um Code-Server auf Ihrer Domäne verfügbar zu machen, in einer Datei namens code-server.conf unter /etc/nginx/sites-available. Beginnen Sie mit dem Erstellen mithilfe Ihres Editors:

      • sudo nano /etc/nginx/sites-available/code-server.conf

      Fügen Sie die folgenden Zeilen hinzu:

      /etc/nginx/sites-available/code-server.conf

      server {
          listen 80;
          listen [::]:80;
      
          server_name code-server.your-domain;
      
          location / {
              proxy_pass http://localhost:8080/;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection upgrade;
              proxy_set_header Accept-Encoding gzip;
          }
      }
      

      Ersetzen Sie code-server.your-domain​​​ durch Ihre gewünschte Domäne, speichern und schließen Sie dann die Datei.

      In dieser Datei definieren Sie, dass Nginx auf den HTTP-Port 80 lauschen soll. Dann geben Sie einen server_name an, der Nginx mitteilt, für welche Domäne Anfragen akzeptiert und diese spezielle Konfiguration angewendet werden sollen. Für den Root-Ort (/) geben Sie im nächsten Block an, dass Anfragen an den Code-Server auf localhost:8080 ausgeführt werden sollen. Die nächsten drei Zeilen (ab proxy_set_header) weisen Nginx an, einige HTTP-Anforderungsheader zu übertragen, die für das korrekte Funktionieren von WebSockets benötigt werden, die Code-Server extensiv verwendet.

      Damit die Konfiguration dieser Site aktiv wird, müssen Sie eine symbolische Verknüpfung davon im Ordner /etc/nginx/sites-enabled​​​ erstellen, indem Sie Folgendes ausführen:

      • sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf

      Um die Gültigkeit der Konfiguration zu testen, führen Sie folgenden Befehl aus:

      Sie sehen die folgende Ausgabe:

      Output

      nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

      Damit die Konfiguration wirksam werden kann, müssen Sie Nginx neu starten:

      • sudo systemctl restart nginx

      Ihre Code-Server-Installation ist nun auf Ihrer Domäne verfügbar. Im nächsten Schritt sichern Sie es durch Anwendung eines kostenlosen Let’s Encrypt TLS-Zertifikates.

      Schritt 3 – Sicherung Ihrer Domäne

      In diesem Abschnitt sichern Sie Ihre Domäne mit einem Let’s Encrypt TLS-Zertifikat, das Sie mit Certbot bereitstellen.

      Um die neueste Version von Certbot und dessen Nginx-Plugin zu installieren, führen Sie folgenden Befehl aus:

      • sudo apt install certbot python-certbot-nginx

      Als Teil der Voraussetzungen haben Sie ufw (Uncomplicated Firewall) aktiviert und so konfiguriert, dass ein unverschlüsselter HTTP-Verkehr erlaubt ist. Damit Sie auf die gesicherte Site zugreifen können, müssen Sie sie so konfigurieren, dass sie verschlüsselten Verkehr akzeptiert. Dafür führen Sie folgenden Befehl aus:

      Die Ausgabe sieht wie folgt aus:

      Output

      Rule added Rule added (v6)

      Ähnlich wie bei Nginx müssen Sie es neu laden, damit die Konfiguration wirksam werden kann:

      Die Ausgabe zeigt Folgendes:

      Output

      Firewall reloaded

      Navigieren Sie anschließend in Ihrem Browser zu der Domäne, die Sie für Code-Server verwendet haben. Sie erhalten die Anmeldeaufforderung des Code-Servers.

      Eingabeaufforderung des Code-Server-Login

      Code-Server fragt Sie nach Ihrem Passwort. Geben Sie dasjenige ein, das Sie im vorigen Schritt festgelegt haben und drücken Sie Enter IDE. Jetzt rufen Sie Code-Server auf und sehen sofort seine Editor-GUI.

      Code-Server GUI

      Nachdem Sie nun überprüft haben, ob Code-Server korrekt auf Ihrer Domäne verfügbar ist, installieren Sie Let’s Encrypt TLS-Zertifikate, um es mit Certbot zu sichern.

      Um Zertifikate für Ihre Domäne anzufordern, führen Sie folgenden Befehl aus:

      • sudo certbot --nginx -d code-server.your-domain

      In diesem Befehl führen Sie certbot aus, um Zertifikate für Ihre Domäne anzufordern – Sie durchlaufen den Domänennamen mit dem Parameter -d. Das Flag --nginx weist sie an, eine eine automatische Änderung der Nginx-Site-Konfiguration zur Unterstützung von HTTPS vorzunehmen. Vergessen Sie nicht, code-server.your-domain durch Ihren Domänennamen zu ersetzen.

      Wenn Sie Certbot zum ersten Mal ausführen, werden Sie aufgefordert, eine E-Mail-Adresse für dringende Bekanntmachungen anzugeben und die AGBs von EFF zu akzeptieren. Certbot fordert daraufhin Zertifikate für Ihre Domäne von Let’s Encrypt an. Dann werden Sie gefragt, ob Sie den gesamten HTTP-Verkehr an HTTPS weiterleiten möchten:

      Output

      Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

      Es wird empfohlen, die zweite Option auszuwählen, um die Sicherheit zu maximieren. Nachdem Sie Ihre Auswahl eingegeben haben, drücken Sie die EINGABETASTE.

      Die Ausgabe sieht ungefähr wie folgt aus:

      Output

      IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/code-server.your-domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/code-server.your-domain/privkey.pem Your cert will expire on ... To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

      Das bedeutet, dass Certbot TLS-Zertifikate erfolgreich generiert und auf die Nginx-Konfiguration für Ihre Domäne angewendet hat. Sie können Ihre Code-Server-Domäne nun in Ihrem Browser neu laden und werden links von der Websiteadresse ein Schloss sehen: Das bedeutet, dass Ihre Verbindung korrekt gesichert ist.

      Nachdem Code-Server nun auf Ihrer Domäne über einen gesicherten Nginx-Reverseproxy zugänglich ist, können Sie die Benutzeroberfläche von Code-Server überprüfen.

      Schritt 4 – Verwendung der Code-Server-Benutzeroberfläche

      In diesem Abschnitt werden Sie einige der Funktionen der Code-Server-Benutzeroberfläche verwenden. Da Code-Server Visual Studio Code ist, der in der Cloud ausgeführt wird, hat er dieselbe Benutzeroberfläche wie die eigenständige Desktop-Edition.

      Auf der linken Seite der IDE befindet sich eine vertikale Reihe von sechs Schaltflächen, welche die am häufigsten verwendeten Funktionen in einem Seitenbereich namens Aktivitätsleiste öffnen.

      Code-Server-GUI – Seitenbereich

      Diese Leiste ist anpassbar: Sie können diese Ansichten in eine andere Reihenfolge bringen oder von der Leiste entfernen. Standardmäßig öffnet die erste Schaltfläche das allgemeine Menü in einem Dropdown, während die zweite Ansicht das Feld Explorer öffnet, das eine baumartige Navigation der Struktur des Projekts bereitstellt. Hier können Sie Ihre Ordner und Dateien verwalten und sie je nach Bedarf erstellen, löschen, verschieben und umbenennen. Die nächste Ansicht bietet Zugriff auf die Funktion Suchen und Ersetzen.

      Im Anschluss daran wird in der standardmäßigen Reihenfolge Ihre Ansicht der Quellcodeverwaltungssysteme wie Git angezeigt. Visual-Studio-Code unterstützt auch andere Quellcodeverwaltungsanbieter. Weitere Anweisungen für Arbeitsabläufe bei Quellcodeverwaltung mit dem Editor finden Sie in dieser Dokumentation.

      Git-Bereich mit Kontextmenü geöffnet

      Die Debugger-Option auf der Aktivitätsleiste bietet alle gängigen Aktionen zum Debuggen in der Kontrollleiste. Visual Studio Code bietet integrierte Unterstützung für den Laufzeit-Debugger Node.js und jede Sprache, die zu Javascript transpiliert. Für weitere Sprachen können Sie Erweiterungen für den erforderlichen Debugger installieren. Debugging-Konfigurationen können Sie in der Datei launch.json speichern.

      Debugger-Ansicht mit launch.json geöffnet

      Die letzte Ansicht in der Aktivitätsleiste bietet ein Menü zum Zugriff auf verfügbare Erweiterungen auf dem Marketplace.

      Code-Server-GUI – Registerkarten

      Der zentrale Teil der GUI ist Ihr Editor, den Sie für Ihre Codebearbeitung durch Registerkarten trennen können. Ihre Bearbeitungsansicht können ein Rastersystem oder nebeneinander angeordnete Dateien sein.

      Editor-Rasteransicht

      Nach der Erstellung einer neuen Datei über das Menü File öffnet sich eine leere Datei in einer neuen Registerkarte. Sobald sie gespeichert ist, wird der Name der Datei im Seitenfeld Explorer sichtbar. Sie können Ordner durch einen Rechtsklick auf die Seitenleiste Explorer und durch Klicken auf New Folder erstellen. Sie können einen Ordner erweitern, indem Sie auf seinen Namen klicken, sowie Dateien und Ordner in obere Teile der Hierarchie ziehen und ablegen, um sie an einen neuen Ort zu verschieben.

      Code-Server-GUI – New Folder

      Sie können Zugriff auf ein Terminal erhalten, indem Sie STRG+UMSCHALT+` eingeben oder im oberen Dropdownmenü auf Terminal klicken und New Terminal auswählen. Das Terminal öffnet sich in einem unteren Feld und sein Arbeitsverzeichnis wird auf den Arbeitsbereich des Projekts festgelegt, der die im Seitenbereich Explorer gezeigten Dateien und Ordner erhält.

      Sie haben sich nun einen Überblick über die Code-Server-Benutzeroberfläche und einige der am häufigsten verwendeten Funktionen verschafft.

      Zusammenfassung

      Code-Server, eine vielseitige Cloud-IDE, ist jetzt auf Ihrem Debian-10-Server installiert, auf Ihrer Domäne verfügbar und mit Let’s-Encrypt-Zertifikaten gesichert. Jetzt können Sie einzeln oder als Team an Projekten arbeiten. Die Ausführung einer Cloud-IDE gibt Ressourcen auf Ihrem lokalen Computer frei und ermöglicht es Ihnen, die Ressourcen bei Bedarf zu skalieren. Weitere Informationen finden Sie in der Visual Studio Code Dokumentation, wo Sie zusätzliche Funktionen und detaillierte Anweisungen zu anderen Komponenten des Code-Servers nachlesen können.

      Wenn Sie Code-Server auf Ihrem DigitalOcean Kubernetes-Cluster ausführen möchten, sehen Sie sich unser Tutorial So richten Sie die Code-Server-Cloud-IDE-Plattform auf DigitalOcean Kubernetes ein an.



      Source link