Verbindung zu Clusterknoten mit SSH herstellen
Um über eine Befehlsshell eine Verbindung zu einem Big Data Service-Clusterknoten herzustellen.
Beim Erstellen eines Clusters wird ein SSH-Schlüsselpaar erstellt, und der Public Key wird auf allen Knoten des Clusters installiert. Siehe Cluster erstellen. Weitere Informationen zum Erstellen anderer Schlüsselpaare finden Sie unter Schlüsselpaare auf Linux-Instanzen verwalten.
- Zugriff auf den privaten SSH-Schlüssel haben, der mit einem dem Cluster zugewiesenen Public Key verknüpft ist.
Beachten Sie auch, dass Berechtigungen für die Private-Key-Datei den Lese-/Schreib-/Ausführungszugriff ermöglichen müssen, aber die Datei nicht für andere Benutzer zugänglich sein darf. Beispiel: Um die entsprechenden Berechtigungen festzulegen, können Sie
chmod 600 ~/.ssh/my_keys/my_host_key_filename
eingeben. Das SSH-Utility ignoriert die Private-Key-Datei, wenn Berechtigungen nicht korrekt festgelegt wurden und die Private-Key-Datei für andere Benutzer zugänglich ist. - Die öffentliche IP-Adresse des Knotens kennen, zu dem Sie eine Verbindung herstellen möchten. Sie finden die IP-Adresse auf der Seite Knotendetails in der Oracle Cloud-Konsole. Siehe Details eines Clusterknotens abrufen.
- Sicherstellen, dass Port 22 geöffnet ist. Siehe Sicherheitsregeln festlegen.
So stellen Sie eine Verbindung zu einem Knoten in einem öffentlichen Subnetz her:
- Verwenden Sie den folgenden Befehl, um die Dateiberechtigungen so festzulegen, dass nur Sie die Datei lesen können:
$ chmod 400 <private_key>
<private_key> ist der vollständige Pfad und Name der Datei, die den Private Key enthält, der mit dem Cluster verknüpft ist, auf das Sie zugreifen möchten.
- Mit dem folgenden SSH-Befehl können Sie auf das Cluster zugreifen.
$ ssh –i <private_key> <username>@<public-ip-address>
<private_key> ist der vollständige Pfad und Name der Datei, die den Private Key enthält, der mit der gewünschten Instanz verknüpft ist.
<username> ist der Standardname für das Cluster. Der Standardbenutzername ist
opc
.<public-ip-address> ist die öffentliche IP-Adresse des Clusterknotens, auf den Sie zugreifen möchten.
Wenn der SSH-Private Key nicht in der vom SSH-Utility erwarteten Datei oder im erwarteten Pfad gespeichert ist (das SSH-Utility könnte beispielsweise erwarten, dass der Private Key in ~/.ssh/id_rsa
gespeichert ist), müssen Sie den Private-Key-Dateinamen und -Speicherort explizit auf eine der folgenden beiden Arten angeben:
- Geben Sie mit der Option
-i
den Dateinamen und den Speicherort des Private Keys an. Beispiel:ssh -i ~/.ssh/my_keys/my_host_key_filename opc@192.0.2.254
- Fügen Sie den Private-Key-Dateinamen und den Speicherort zu einer SSH-Konfigurationsdatei hinzu, und zwar entweder zur Clientkonfigurationsdatei (
~/.ssh/config
), sofern vorhanden, oder zur systemweiten Clientkonfigurationsdatei (/etc/ssh/ssh_config
). Beispiel: Sie können Folgendes hinzufügen:Host 192.0.2.254 IdentityFile ~/.ssh/my_keys/my_host_key_filename
Für weitere Informationen zur Konfigurationsdatei des SSH-Utilitys geben Sie man ssh_config
ein.
Worker-Knoten in privaten Subnetzen haben nur private IP-Adressen (keine öffentlichen IP-Adressen). Sie können nur von anderen Ressourcen innerhalb des VCN aufgerufen werden. Es wird empfohlen, mit Bastionhosts den externen Zugriff (wie SSH) auf Worker-Knoten in privaten Subnetzen zu kontrollieren. Ein Bastion-Host befindet sich in einem öffentlichen Subnetz, hat eine öffentliche IP-Adresse und ist über das Internet zugänglich. Weitere Informationen zu Bastionhosts finden Sie in der Dokumentation zu Bastion.
SSH zu BDS-Clusterknoten mit Bastion-Service:
- Erstellen Sie einen Bastion-Service mit demselben Subnetz wie das Cluster, in dem er erstellt wurde.
- Melden Sie sich beim Cloud-Mandanten an: Wählen Sie Identität und Sicherheit, Bastion aus, und wählen Sie "Bastion erstellen" aus.
- Geben Sie den gewünschten Bastionnamen und das Subnetz ein, in dem das BDS-Cluster erstellt wird.
- Geben Sie unter CIDR-Blockausnahmeliste
0.0.0.0/0
ein, damit die IP-Adresse des lokalen Rechners auf die Bastionressource zugreifen kann. - Legen Sie unter Erweiterte Optionen anzeigen die TTL der Session fest, die in dieser Bastion mit der Eigenschaft Maximale Gültigkeitsdauer der Session (TTL) erstellt werden kann.
- Wählen Sie "Bastion erstellen".
- Erstellen Sie eine Session, indem Sie Session erstellen auswählen.
- Wählen Sie unter Sessiontyp die Option
SSH Port Forwarding Session
aus. - Geben Sie einen Namen für die Session ein.
- Geben Sie die private IP-Adresse eines Clusterknotens im Abschnitt IP-Adresse ein.
- Port 22 in Port beibehalten.
- Erstellen Sie entweder ein Schlüsselpaar mit der Option SSH-Schlüsselpaar generieren, oder verwenden Sie den Public Key des Public-Private-Key-Paares.
- Legen Sie unter Erweiterte Optionen anzeigen die TTL der Session fest. Der Standardwert beträgt 180 Minuten.
- Wählen Sie das Menü neben dem Sessionnamen aus, und wählen Sie SSH-Befehl kopieren aus.
- Aktualisieren Sie die Platzhalter, wie
<privateKey>
und<localPort>
im SSH-Befehl, der mit einem Notizblock kopiert wurde. Beispiel: Der SSH-Befehl wurde von der Konsole kopiert:
Der aktualisierte SSH-Befehl:ssh -i <privateKey> -N -L <localPort>:<PRIVATE-IP>:22 -p 22 ocid1.bastionsession.oc1.<region>.abcdefghijklmnopqrstuvwxyz@host.bastion.region.oci.oraclecloud.com
ssh -i ~/.ssh/my_private_key -N -L 7183:<PRIVATE-IP>:22 -p 22 ocid1.bastionsession.oc1.<region>.abcdefghijklmnopqrstuvwxyz@host.bastion.region.oci.oraclecloud.com
Im vorherigen Beispiel wird
<privateKey>
durch den Private Key des Public Keys ersetzt, der in Schritt 12 verwendet wurde.<localPort>
wird durch den zufälligen Port 7183 ersetzt. Sie können alle Ports im Bereich von 1024 bis 65535 auswählen, die als nicht privilegierte Ports bezeichnet werden. Stellen Sie sicher, dass der verwendete Port von keinem anderen Service verwendet wird. Sie könnennetstat
oder ähnliche Befehle verwenden, um die Portnutzung zu prüfen. - Führen Sie den aktualisierten SSH-Befehl in einem Terminal aus, in dem ein Tunnel zu Bastion eingerichtet wurde.
- Auf einem anderen Terminal können Sie sich mit dem lokalen Port, der in Schritt 15 konfiguriert wurde, beim Clusterknoten anmelden. Beispiel:
ssh -i ~/.ssh/my_private_key -p 7183 opc@localhost
- Öffnen Sie
putty.exe
. - Blenden Sie im Bereich Category Window ein, und wählen Sie Translation aus.
- Wählen Sie in der Liste Remote-Zeichensatz die Option UTF-8 aus. Die Standardgebietsschema-Einstellung auf Linux-basierten Instanzen ist UTF-8. Damit wird PuTTY so konfiguriert, dass dasselbe Gebietsschema verwendet wird.
-
Wählen Sie im Bereich Category die Option Session aus, und geben Sie Folgendes ein:
-
Hostname (oder IP-Adresse):
<username>@<public-ip-address>
<username> ist der Standardname für die Instanz. Der Standardbenutzername ist
opc
.<public-ip-address> ist die öffentliche IP-Adresse der Instanz, die Sie von der Konsole abgerufen haben.
-
Port: 22
-
Verbindungstyp: SSH
-
- Blenden Sie im Bereich Category die Option Connection und dann die Option SSH ein, und wählen Sie Auth aus.
- Wählen Sie Browse aus, und wählen Sie Ihren Private Key.
- Wählen Sie Open aus, um die Session zu starten.
Wenn Sie das erste Mal mit der Instanz verbinden, wird möglicherweise eine Meldung angezeigt, dass der Hostschlüssel des Servers nicht in der Registry gecacht wird. Yes, um die Verbindung fortzusetzen.
Wenn Sie als Standardbenutzer opc
angemeldet sind, können Sie den Befehl sudo
verwenden, um administrative Aufgaben auszuführen, wie z.B. das Erstellen von Benutzern und Gruppen für den Zugriff auf das Cluster.