So erstellen Sie eine Website oder ein Blog im Jahr 2020 - Kostenlose und einfache Anleitung zum Erstellen einer Website

So stellen Sie eine SSH-Verbindung zum Docker-Container her [Step-By-Step Guide]

In diesem Artikel werfen wir einen Blick auf die Integration von SSH in Docker-Container. Wir beantworten auch viele Fragen, die Sie zu SSH- und Docker-Containern haben.

Das Secure Shell (SSH)-Protokoll, oft auch als Secure Shell bezeichnet, ist ein kryptografisches Netzwerkprotokoll, das Benutzern die sichere Nutzung von Netzwerkdiensten in einer ungeschützten Umgebung ermöglicht.

Seine bemerkenswertesten Anwendungen sind die Befehlszeilenausführung und die Remote-Anmeldung, die im Folgenden beschrieben werden. SSH-Anwendungen basieren auf einer Client-Server-Architektur, die eine SSH-Client-Instanz mit einer SSH-Server-Instanz verbindet.

Obwohl SSH zu den am häufigsten verwendeten Tools im Toolkit eines Systemadministrators gehört, wird es nicht oft in Verbindung mit Docker verwendet. Lassen Sie uns darüber sprechen, wie SSH in einen Container funktioniert und was Sie vorher beachten sollten.

Verwendung von SSH zusammen mit Docker-Containern; Ich empfehle es?

Die erste Frage, die sich bei der Integration von SSH in Docker-Container stellt, ist: Ist dies empfehlenswert? Das Einrichten eines SSH-Servers in einem Docker-Container gilt als schreckliche Praxis und sollte vermieden werden. Allerdings ist es fast immer vorzuziehen, die exec-Anweisung von Docker zu verwenden, wenn eine Shell in einen Container geladen wird.

Docker-Neulinge könnten versucht sein, SSH zum Aktualisieren von Dateien innerhalb eines Containers zu verwenden, was nicht empfohlen wird.

Container hingegen sind als Einwegbehälter gedacht und sollten nach ihrer Bildung als unveränderlich angesehen werden, mit Ausnahme von persistenten Daten, die auf Volumes gespeichert sind. Wenn Sie Änderungen am Quellcode vornehmen, müssen Sie ein neues Image erstellen und den Container neu starten.

Neben dem zeitaufwändigen Einrichtungsprozess, einschließlich des Hinzufügens verschiedener Abhängigkeitspakete, stellt die Bereitstellung von SSH auf einem Docker-Image einen weiteren potenziellen Angriffsvektor dar.

Die Verwaltung mehrerer eigenständiger SSH-Prozesse in einem Netzwerk miteinander verbundener aktiver Container erfordert, dass Sie sich die richtige Verbindung für jeden Operator auf einem System mit vielen aktiven Containern merken.

Als Alternative zur Installation von SSH auf jedem Container führen Sie es nur einmal auf der physischen Maschine aus, die Docker hostet.

Greifen Sie dann über SSH auf Ihren Host zu und führen Sie docker exec -it my-container bash aus, um einzelne Container mit dem Docker-Befehl einzuschieben.

Obwohl Docker Exec der Hauptweg ist, gibt es mehrere Situationen, in denen SSH nützlich sein kann. Sie können es beispielsweise als Übergangsmethode zur Schnittstelle mit älteren Bereitstellungsplattformen verwenden, während Sie eine dauerhaftere Lösung entwickeln.

Einige integrierte Entwicklungsumgebungen (IDEs) und Build-Systeme nutzen dies möglicherweise auch, um Live-Reload-Funktionen während des Builds zu ermöglichen.

So konfigurieren Sie SSH im Docker-Container

Lassen Sie uns besprechen, wie Sie mit der Docker-Desktop-App einen SSH-Server unter Windows einrichten.

Wenn Sie den Docker-Desktop für Windows oder das Windows-Subsystem für Linux noch nicht installiert haben, können Sie jetzt mit dem Installationsprozess beginnen.

Als Erstes müssen Sie Docker auf Ihrem Computer oder Laptop installieren. Sobald der Docker-Desktop installiert ist, wird alles ausgeführt und für den Zugriff über ein echtes Ubuntu 20.04 Linux-Subsystem-Setup konfiguriert; Sie sollten bereit sein, mit der Arbeit an Ihren Projekten zu beginnen.

Wenn Sie Ubuntu noch nicht heruntergeladen haben, geben Sie den Befehl ein.

Geben Sie nun den Befehl docker images ein, um zu sehen, ob Sie über das neueste Ubuntu-Image verfügen.

docker images

So starten Sie den Docker-Container

Um zu beginnen, müssen Sie einen Docker-Container ausführen. Wenn der Container beendet wird, entfernen Sie ihn aus Ihrem System, um sicherzustellen, dass er nicht mehr vorhanden ist. Starten Sie dann über das Terminal den Docker-Container im interaktiven Modus, um zu sehen, was vor sich geht.

Hier haben Sie die Möglichkeit, etwas Einzigartiges zu erreichen. Ordnen Sie zunächst den Localhost dem Port 8022 vom Localhost zum eigentlichen Docker-Container zu, indem Sie die Befehle „Localhost“ zum Port 8022 verwenden. Benennen Sie dann der Einfachheit halber den Docker-Container.

Führen Sie die neueste Version von Ubuntu aus und führen Sie Bash beim Start aus.

Hier ist der Befehl, den Sie eingeben müssen:

docker run – rm -it -p 8022:8022 – name sshd ubuntu: latest bash

Nachdem Sie alles eingegeben haben, drücken Sie die Eingabetaste. Sie sollten eine Eingabeaufforderung erhalten und können dann loslegen.

Das Reinigen des Bildschirms ist das Erste, was Sie tun sollten, bevor Sie mit dem Vorgang fortfahren.

So installieren Sie die erforderlichen Softwarepakete über SSH im Docker Container

Um das Softwarepaket zu installieren, müssen Sie zunächst das Anwendungsupdate eingeben.

app-get update

Wenn Sie sich nicht in einem Container befinden, müssen Sie möglicherweise sudo verwenden. Sie geben also sudo und dann Ihr Root-Passwort ein, oder Sie können zuerst sudo su eingeben und dann alle Befehle als Root ausführen.

Aber im Docker-Container werden wir root verwenden.

Wenn das Update abgeschlossen ist, können Sie den Bildschirm löschen. Anschließend können Sie jetzt eine App auf einem nicht andockbaren System herunterladen. Dann müssen Sie ein -y eingeben, damit Sie nicht jedes Mal aufgefordert werden, „Ja“ zu sagen, um Dinge zu installieren.

Fahren Sie fort und installieren Sie den offenen SSH-Server. Dadurch wird vim installiert, sodass Sie einen Editor verwenden können.

Wenn Sie möchten, können Sie nano auch hier installieren. Aber Sie würden auch SSH installieren. Sie können die Firewall auch problemlos installieren.
Wenn das erledigt ist, drücken Sie die Eingabetaste.

apt-get -y install openssh-server vim ssh ufw

Rechnen Sie mit einer kurzen Wartezeit, da es eine Weile dauert, bis der Vorgang abgeschlossen ist. Ich würde während der Installation zum Setup zurückkehren, da Ihnen dabei ein paar Fragen gestellt würden.

Es wird nach einem geografischen Gebiet gefragt. Wählen Sie also Ihren geografischen Standort aus. In diesem Beispiel nennen wir Amerika.

So stellen Sie eine SSH-Verbindung zum Docker-Container her [Step-By-Step Guide]

Wir haben uns auch für New York entschieden, also haben wir 105 als Zeitzone ausgewählt.

So stellen Sie eine SSH-Verbindung zum Docker-Container her [Step-By-Step Guide]

Damit ist die Installation erfolgreich abgeschlossen. Machen Sie also weiter und löschen Sie den Bildschirm. Als nächstes werden wir unsere SSH-Konfiguration aktualisieren, um nicht den bekannten Port 22 zu verwenden, auf dem SSH läuft.

So konfigurieren Sie den SSH-Portzugriff

Der nächste Schritt bei der Integration von SSH in den Docker-Container wäre die Konfiguration des Zugriffs auf den SSH-Port.

Aus Sicherheitsgründen werden wir es auf einen höheren Port über 1024 setzen. So wie Sie es machen, verwenden Sie vi, Sie können nano verwenden, das wir ursprünglich installiert haben. Dann geht es zur Unterstrich-Konfigurationsdatei ssh update ssh d.

vi /etc/ssh/sshd_config

Gehen Sie zu diesem Port hier hinunter, öffnen Sie ihn und gestalten Sie den Port wie in der Abbildung unten gezeigt.

So stellen Sie eine SSH-Verbindung zum Docker-Container her [Step-By-Step Guide]

Geben Sie dann stattdessen 8022 ein. Sie können jeden Port über 1024 verwenden. Stellen Sie jedoch sicher, dass es nicht zu Konflikten mit anderen Diensten kommt, die Sie bereits konfiguriert haben.

So stellen Sie eine SSH-Verbindung zum Docker-Container her [Step-By-Step Guide]

Fahren Sie fort, speichern Sie die Datei und löschen Sie den Bildschirm.

Als nächstes sollten Sie Port 8022 öffnen; Wir hatten von unserem lokalen System auf den Container portiert, als wir diesen Container gestartet haben.

Konfigurieren von Firewall-Diensten

Um Firewall-Dienste durch die Integration von SSH in den Docker-Container zu konfigurieren, öffnen Sie diese Firewall. Hier erstellen wir eine einfache Firewall.

Sie werden Folgendes eingeben: Erlauben Sie 8022.

allow 8022

Sie werden sehen, dass die Regel aktualisiert wurde und wir können loslegen. Als nächstes müssen Sie also den Bildschirm löschen.

So starten Sie den SSH-Dienst

Um den SSH-Dienst beim SSH-Einstieg in den Docker-Container zu starten,

Sie werden ein System erstellen oder es aktivieren. Sie werden ein CTL-Enable-SSH-System durchführen. Sobald es fertig ist, wird ein CTL-Start des SSH-Systems ausgeführt. Möglicherweise erhalten Sie eine Fehlermeldung, die besagt, dass Sie das Init-System verwenden müssen.

Stattdessen machen Sie einen Schrägstrich etsy inet.d ssh start und dort wird ssh gestartet.

So erstellen Sie private und öffentliche Schlüssel

Jetzt erstellen wir die SSH-Schlüssel, die mit SSH im Docker-Container funktionieren. Der öffentliche Schlüssel findet auf dem Server und der private Schlüssel auf unseren Clients statt.

Wir tun dies, indem wir ssh keygen schreiben und eine Bitgröße von 4096 hinzufügen, um es schön und sicher zu halten.

ssh-keygen - 4096

Nun werden Sie gefragt, wie Sie die Datei nennen möchten. In diesem Beispiel behalten wir den Standardwert id_rsa bei; Es wird nach einer Passphrase gefragt, die wir in eine Passphrase einfügen. Lassen Sie uns also ein schönes und einfaches Wort eingeben und es bestätigen, und das war’s, wir sind fertig.

So stellen Sie eine SSH-Verbindung zum Docker-Container her [Step-By-Step Guide]

Verwenden Sie für ausreichende Sicherheit eine komplexe Passphrase. Für das Beispiel haben wir eine einfache Passphrase gewählt.

Jetzt haben wir einen schönen und sicheren 4096-Bit-RS8-Schlüssel. Lassen Sie uns nun mit einer Katze das SSH-Home-Verzeichnis mit dem soeben erstellten RSA-Schlüssel visualisieren.

cat~/ .ssh/id_rsa

Wir würden diese gesamte Datei nehmen

So stellen Sie eine SSH-Verbindung zum Docker-Container her [Step-By-Step Guide]

und kopieren Sie es in die Zwischenablage, indem Sie es auf den Desktop ziehen. Klicken Sie mit der rechten Maustaste und erstellen Sie eine neue Textdatei.

Nennen wir es privaten Schlüssel. Wenn wir es öffnen, fügen wir diesen privaten Schlüssel ein.

Wir würden sicherstellen, dass wir den letzten Kommentar hier unten mit den Bindestrichen und den Eröffnungskommentar oben mit den Bindestrichen haben. Da geht es uns allen gut. Jetzt speichern wir die Datei.

Sie können dies schließen und die Zwischenablage entfernen. Reinigen Sie den Bildschirm, damit er schön sauber bleibt.

So fügen Sie der autorisierten Schlüsseldatei einen öffentlichen Schlüssel hinzu

Die nächste Frage, die wir in unserem Docker-Container-SSH-Integrationsleitfaden beantworten werden, ist, wie man den autorisierten Schlüsseldateien einen öffentlichen Schlüssel hinzufügt.

Was wir jetzt von unserem lokalen SSH-Verzeichnis aus tun wollen; Ich würde die Datei rsa.hub kürzen und sie an autorisierte Schlüssel weiterleiten.

cat ~/ .ssh/_rsa.pub > ~/ .ssh/authorized_keys

Hinweis: Ich hatte keine autorisierte Schlüsseldatei, da ich eine Neuinstallation durchgeführt habe. Wenn Sie jedoch kein neues System verwenden, verwenden Sie nicht das einzelne „>“. Verwenden Sie stattdessen die doppelte spitze Klammer „>>“, um die autorisierte Schlüsseldatei hinzuzufügen.

cat ~/ .ssh/_rsa.pub >> ~/ .ssh/authorized_keys

So installieren Sie Kitt

Da wir uns auf einem Windows-System befinden, müssen wir als Nächstes Putty herunterladen. Da wir unter Windows arbeiten, müssen wir ein wenig mit unserem privaten Schlüssel herumspielen, damit dies funktioniert und wir auf unseren Ubuntu-Server zugreifen können, auf dem der SSH-Daemon läuft.

Also beginnen wir damit, Google zu öffnen und putty Download für Windows einzugeben. Es wäre besser, wenn Sie es auswählen und dann Putty herunterladen.

So stellen Sie eine SSH-Verbindung zum Docker-Container her [Step-By-Step Guide]

Der nächste Schritt besteht darin, es von hier aus herunterzuladen, und das Beste ist: Da wir Ubuntu 2004 verwenden, müssen Sie zunächst über die neueste Version verfügen. Laden wir also in unserem Fall die 64-Bit-MSI-Datei herunter.

Führen Sie eine schnelle Viren- und Malwareprüfung durch, und schon können Sie mit der Installation beginnen. Dann holen Sie sich die MSI-Datei, führen Sie den Einrichtungsvorgang durch und installieren Sie sie.

So erstellen Sie Windows für eine PPK-Datei

Die letzte Frage, die wir in diesem Docker-Container-SSH-Integrationsleitfaden beantworten würden, ist, wie wir Windows für unsere .ppk-Datei erstellen.

Unter Ihrem Startmenü sollten Sie alle verschiedenen Putty-Elemente finden. Sie können sie bequem auf Ihren Schreibtisch legen.

Das erste, das Sie öffnen möchten, ist Puttygen. Doppelklicken Sie darauf. Also öffnen und laden wir unsere private Schlüsseldatei. Wenn wir also nach dieser privaten Schlüsseldatei suchen, werden wir feststellen, dass dort nichts ist. Sie müssen dies also zunächst auf alle Dateien festlegen, um es zu finden.

So stellen Sie eine SSH-Verbindung zum Docker-Container her [Step-By-Step Guide]

Schnappen Sie sich den privaten Schlüssel und öffnen Sie ihn.

So stellen Sie eine SSH-Verbindung zum Docker-Container her [Step-By-Step Guide]

Sie werden nach diesem Passwort gefragt. Geben Sie dann die von Ihnen erstellte Passphrase ein. Ich hätte alle Ihre Informationen.

So stellen Sie eine SSH-Verbindung zum Docker-Container her [Step-By-Step Guide]

Sie sollten diesen privaten Schlüssel behalten. Sie können ihm denselben Namen geben, den wir dem privaten Schlüssel gegeben haben, aber er hat stattdessen keine Erweiterung.

abschließende Gedanken

Dies war eine Anleitung zur Integration von SSH in den Docker-Container. Wir haben viele häufig gestellte Fragen beantwortet und Ihnen ausführliche Erklärungen gegeben.

Dieser Leitfaden ist leicht zu verstehen, da wir die Codes und Diagramme geschrieben haben, die Sie benötigen.