Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Authentifizieren von Junos PyEZ-Benutzern

ZUSAMMENFASSUNG Junos PyEZ-Anwendungen können Benutzer mithilfe von SSH-Standardauthentifizierungsmechanismen authentifizieren, einschließlich Kennwörtern und SSH-Schlüsseln.

Übersicht über die Junos PyEZ-Benutzerauthentifizierung

Mit Junos PyEZ können Sie über eine serielle Konsolenverbindung, Telnet oder eine NETCONF-Sitzung über SSH eine direkte Verbindung zu Junos-Geräten herstellen und diese verwalten. Darüber hinaus unterstützt Junos PyEZ auch die Verbindung mit dem Gerät über eine Telnet- oder SSH-Verbindung mit einem Konsolenserver, der mit dem Port des Geräts CONSOLE verbunden ist. Das Gerät muss in der Lage sein, den Benutzer je nach Verbindungsmethode entweder mit einem Kennwort oder anderen standardmäßigen SSH-Authentifizierungsmechanismen zu authentifizieren. Wenn Sie Junos-Geräte über eine SSH-Verbindung verwalten, ist die Konfiguration von SSH-Schlüsseln die bequemste und sicherste Möglichkeit, auf ein Gerät zuzugreifen. SSH-Schlüssel ermöglichen es dem Remote-Gerät, vertrauenswürdige Benutzer zu identifizieren.

Sie können Gerätevorgänge mit jedem Benutzerkonto ausführen, das Zugriff auf das verwaltete Junos-Gerät hat. Sie können den Benutzer explizit definieren, wenn Sie eine neue Instanz der jnpr.junos.device.Device Klasse erstellen, oder wenn Sie keinen Benutzer in der Parameterliste angeben, wird der Benutzer standardmäßig auf $USER.

Bei SSH-Verbindungen fragt Junos PyEZ automatisch die SSH-Standardkonfigurationsdatei unter ~/.ssh/config ab, sofern eine vorhanden ist, es sei denn, die Device Argumentliste enthält das ssh_config Argument zum Angeben einer anderen Konfigurationsdatei. Junos PyEZ verwendet alle relevanten Einstellungen in der SSH-Konfigurationsdatei für die angegebene Verbindung, die nicht durch die Argumente in der Device Argumentliste überschrieben werden, z. B. den Benutzer oder die Identitätsdatei.

Wenn der Junos PyEZ-Client SSH verwendet, um eine Verbindung zum Junos-Gerät oder zu einem Konsolenserver herzustellen, der mit dem Gerät verbunden ist, versucht Junos PyEZ zunächst, eine SSH-Authentifizierung mit öffentlichen Schlüsseln und dann eine kennwortbasierte Authentifizierung durchzuführen. Wenn SSH-Schlüssel verwendet werden, wird das angegebene Passwort als Passphrase zum Entsperren des privaten Schlüssels verwendet. Wenn die kennwortbasierte Authentifizierung verwendet wird, wird das angegebene Kennwort als Gerätekennwort verwendet. Wenn die SSH-Authentifizierung mit öffentlichem Schlüssel verwendet wird und der private SSH-Schlüssel eine leere Passphrase aufweist, ist kein Kennwort erforderlich. Private SSH-Schlüssel mit leeren Passphrasen werden jedoch nicht empfohlen.

Es liegt in der Verantwortung des Benutzers, die Anmeldeinformationen für die Authentifizierung mit Benutzername und Kennwort auf sichere Weise zu erhalten, die für seine Umgebung geeignet ist. Es empfiehlt sich, bei jedem Aufruf des Skripts zur Eingabe dieser Authentifizierungsanmeldeinformationen aufzufordern, anstatt die Anmeldeinformationen in einem unverschlüsselten Format zu speichern.

Authentifizieren von Junos PyEZ-Benutzern mithilfe eines Kennworts

So authentifizieren Sie einen Junos PyEZ-Benutzer mit einem Kennwort:

  1. Erstellen Sie in Ihrem bevorzugten Editor eine neue Datei, die die Dateierweiterung .py verwendet.

    In diesem Beispiel wird der Dateiname junos-pyez-pw.py verwendet.

  2. Fügen Sie Code ein, der zur Eingabe des Hostnamens, zu dem eine Verbindung hergestellt werden soll, sowie des Benutzernamens und des Kennworts für das Junos-Gerät auffordert und jeden Wert in einer Variablen speichert.
  3. Wenn der Junos PyEZ-Client über eine SSH-Verbindung zu einem Konsolenserver eine Verbindung mit dem Gerät herstellt, fügen Sie Code ein, der zur Eingabe des Benutzernamens und des Kennworts des Konsolenservers auffordert und jeden Wert in einer Variablen speichert.
  4. In der Liste der Device Konstruktorargumente:
    • Setzen Sie das Argument host auf die Variable, die den Hostnamen enthält

    • Legen Sie die user Argumente and passwd auf die Variablen fest, die die Anmeldeinformationen für Junos OS enthalten.

    • Wenn der Junos PyEZ-Client über SSH eine Verbindung über einen Konsolenserver herstellt, legen Sie die cs_user Argumente und cs_passwd auf die Variablen fest, die die Anmeldeinformationen für den Konsolenserver enthalten.

    • Fügen Sie alle zusätzlichen Argumente hinzu, die für die Verbindungsmethode erforderlich sind

    Das folgende Beispiel enthält Beispielcode für jede der verschiedenen Verbindungsmethoden:

    Hinweis:

    Auf allen Plattformen, auf denen Junos OS ausgeführt wird, ist standardmäßig nur der Root-Benutzer ohne Kennwort konfiguriert. Wenn Sie Junos PyEZ verwenden, um ein neues oder auf Null gesetztes Gerät über eine Konsolenverbindung zu konfigurieren, verwenden Sie user='root', und lassen Sie den passwd Parameter weg.

  5. Führen Sie den Junos PyEZ-Code aus, der zur Eingabe des Hostnamens, des Junos OS-Benutzernamens und -Kennworts sowie des Benutzernamens und des Kennworts des Konsolenservers (falls angefordert) auffordert und das Kennwort nicht in der Befehlszeile wiedergibt.

Authentifizieren von Junos PyEZ-Benutzern mithilfe von SSH-Schlüsseln

Um SSH-Schlüssel in einer Junos PyEZ-Anwendung zu verwenden, müssen Sie zunächst die Schlüssel auf dem Konfigurationsverwaltungsserver generieren und den öffentlichen Schlüssel auf jedem Gerät konfigurieren, mit dem der Junos PyEZ-Client eine Verbindung herstellt. Um eine direkte Verbindung mit dem Junos-Gerät herzustellen, konfigurieren Sie den Schlüssel auf diesem Gerät. Um über einen Konsolenserver eine Verbindung zu einem Junos-Gerät herzustellen, konfigurieren Sie den Schlüssel auf dem Konsolenserver. Um die Schlüssel verwenden zu können, müssen Sie die entsprechenden Argumente in die Device Argumentliste aufnehmen.

Junos PyEZ kann SSH-Schlüssel verwenden, die aktiv in einen SSH-Schlüsselagenten geladen werden, Schlüssel, die entweder am Standardspeicherort oder an einem benutzerdefinierten Speicherort generiert werden, und Schlüssel, die entweder einen Kennwortschutz verwenden oder darauf verzichten. Wenn Sie eine direkte Verbindung zu einem Junos-Gerät herstellen und die Device Argumente kein Kennwort oder keine SSH-Schlüsseldatei angeben, überprüft Junos PyEZ zuerst die SSH-Schlüssel, die aktiv im SSH-Schlüssel-Agent geladen sind, und prüft dann, ob SSH-Schlüssel am Standardspeicherort vorhanden sind. Beim Herstellen einer Verbindung zu einem Konsolenserver werden nur kennwortgeschützte Schlüssel unterstützt.

In den folgenden Abschnitten werden die Schritte zum Generieren der SSH-Schlüssel, zum Konfigurieren der Schlüssel auf Junos-Geräten und zum Verwenden der Schlüssel zum Herstellen einer Verbindung mit dem verwalteten Gerät beschrieben:

Generieren und Konfigurieren von SSH-Schlüsseln

So generieren Sie SSH-Schlüssel auf dem Konfigurationsverwaltungsserver und konfigurieren den öffentlichen Schlüssel auf Junos-Geräten:

  1. Generieren Sie auf dem Server das öffentliche und private SSH-Schlüsselpaar für den gewünschten Benutzer, und geben Sie alle erforderlichen oder gewünschten Optionen an, z. B.:
  2. (Optional) Laden Sie den Schlüssel in den nativen SSH-Schlüsselagenten.
  3. Konfigurieren Sie den öffentlichen Schlüssel auf jedem Gerät, mit dem die Junos PyEZ-Anwendung eine Verbindung herstellen soll, z. B. Junos-Geräte oder einen Konsolenserver, der mit dem Junos-Gerät verbunden ist.

    Eine Methode zum Konfigurieren des öffentlichen Schlüssels unter dem entsprechenden Benutzerkonto auf einem Junos-Gerät besteht darin, den öffentlichen Schlüssel aus einer Datei zu laden.

  4. Überprüfen Sie, ob der Schlüssel funktioniert, indem Sie sich mit dem Schlüssel beim Gerät anmelden.

Referenz-SSH-Schlüssel in Junos PyEZ-Anwendungen

Nachdem Sie das SSH-Schlüsselpaar generiert und den öffentlichen Schlüssel auf dem Remotegerät konfiguriert haben, können Sie den Schlüssel verwenden, um eine Verbindung mit dem Gerät herzustellen, indem Sie die entsprechenden Argumente in den Device Konstruktorcode aufnehmen. Die Device Argumente werden durch den Speicherort des Schlüssels bestimmt, ob der Schlüssel kennwortgeschützt ist, ob der Schlüssel aktiv in einen SSH-Schlüsselagenten wie ssh-agent geladen ist und ob die SSH-Konfigurationsdatei des Benutzers bereits Einstellungen für diesen Host definiert. In den folgenden Abschnitten werden die verschiedenen Szenarien beschrieben:

Authentifizieren des Benutzers mithilfe eines SSH-Schlüsselagenten mit aktiv geladenen Schlüsseln

Sie können einen SSH-Schlüsselagenten verwenden, um private Schlüssel sicher zu speichern und die wiederholte Eingabe der Passphrase für kennwortgeschützte Schlüssel zu vermeiden. Junos PyEZ ermöglicht es einem Client, sich mithilfe von SSH-Schlüsseln, die aktiv in einen SSH-Schlüsselagenten geladen werden, direkt mit einem Junos-Gerät zu verbinden. Wenn beim Herstellen einer Verbindung mit einem Junos-Gerät die Device Argumente kein Kennwort oder keine SSH-Schlüsseldatei angeben, überprüft Junos PyEZ zuerst die SSH-Schlüssel, die aktiv im SSH-Schlüssel-Agent geladen sind, und sucht dann nach SSH-Schlüsseln am Standardspeicherort.

So verwenden Sie SSH-Schlüssel, die aktiv in den nativen SSH-Schlüssel-Agent geladen werden, um eine direkte Verbindung zu einem Junos-Gerät herzustellen:

  • In der Device Argumentliste müssen Sie nur den erforderlichen Hostnamen und alle gewünschten Variablen angeben.

Authentifizieren Sie den Benutzer mit SSH-Schlüsseln ohne Passwortschutz

Junos PyEZ ermöglicht es einem Client, eine direkte Verbindung zu einem Junos-Gerät herzustellen, indem er private SSH-Schlüssel verwendet, die keinen Kennwortschutz haben, obwohl wir die Verwendung von privaten SSH-Schlüsseln mit einer leeren Passphrase nicht empfehlen. Junos PyEZ unterstützt nicht die Verbindung zu einem Konsolenserver über private SSH-Schlüssel mit einer leeren Passphrase.

So stellen Sie eine Verbindung zu einem Junos-Gerät mithilfe von SSH-Schlüsseln her, die sich am Standardspeicherort befinden und keinen Kennwortschutz haben:

  • In der Device Argumentliste müssen Sie nur den erforderlichen Hostnamen und alle gewünschten Variablen angeben.

Junos PyEZ prüft zuerst die SSH-Schlüssel, die in einen aktiven SSH-Schlüssel-Agenten geladen werden, und prüft dann die SSH-Schlüssel am Standardspeicherort.

So stellen Sie eine Verbindung zu einem Junos-Gerät mithilfe von SSH-Schlüsseln her, die sich nicht am Standardspeicherort befinden und nicht über einen Kennwortschutz verfügen:

  • Legen Sie in der Device Argumentliste das ssh_private_key_file Argument auf den Pfad des privaten SSH-Schlüssels fest.

    Hinweis:

    Wenn die SSH-Konfigurationsdatei des Benutzers bereits den Dateipfad des lokalen privaten SSH-Schlüssels für einen bestimmten Host angibt, können Sie das Argument ssh_private_key_file in der Device Argumentliste weglassen. Durch das Einschließen des ssh_private_key_file Arguments werden alle vorhandenen IdentityFile Werte überschrieben, die für einen Host in der SSH-Konfigurationsdatei des Benutzers definiert sind.

Authentifizieren des Benutzers mithilfe kennwortgeschützter SSH-Schlüsseldateien

Junos PyEZ-Clients können kennwortgeschützte SSH-Schlüsseldateien verwenden, um eine direkte Verbindung zu einem Junos-Gerät oder zu einem Konsolenserver herzustellen, der mit dem Gerät verbunden ist.

So stellen Sie über eine kennwortgeschützte SSH-Schlüsseldatei eine direkte Verbindung zu einem Junos-Gerät her:

  1. Fügen Sie Code ein, der zur Eingabe des Kennworts für den privaten SSH-Schlüssel auffordert und den Wert in einer Variablen speichert.
  2. Legen Sie in der Device Argumentliste das Argument so fest, dass es passwd auf die Variable verweist, die das Kennwort für die SSH-Schlüsseldatei enthält.

    Wenn sich der Schlüssel nicht am Standardspeicherort befindet und der Dateipfad nicht bereits in der SSH-Konfigurationsdatei des Benutzers definiert ist, legen Sie das ssh_private_key_file Argument auf den Pfad des privaten Schlüssels fest.

So stellen Sie über einen Konsolenserver eine Verbindung zu einem Junos-Gerät her und verwenden eine kennwortgeschützte SSH-Schlüsseldatei:

  1. Fügen Sie Code ein, der zur Eingabe der Anmeldeinformationen für das Junos-Gerät auffordert und jeden Wert in einer Variablen speichert.

  2. Fügen Sie Code ein, der zur Eingabe des Benutzernamens des Konsolenservers und des Kennworts für den privaten SSH-Schlüssel auffordert und jeden Wert in einer Variablen speichert.

  3. In der Liste der Device Konstruktorargumente:

    • Legen Sie das Argument host auf den Hostnamen oder die IP-Adresse des Konsolenservers fest

    • Legen Sie die user Argumente and passwd auf die Variablen fest, die die Anmeldeinformationen für Junos OS enthalten.

    • Setzen Sie das Argument cs_user auf die Variable, die den Benutzernamen des Konsolenservers enthält

    • Setzen Sie das Argument cs_passwd auf die Variable, die das Kennwort für die SSH-Schlüsseldatei enthält

    • Setzen Sie das ssh_private_key_file Argument auf den Pfad des privaten Schlüssels, wenn sich der Schlüssel nicht am Standardspeicherort befindet und der Dateipfad nicht bereits in der SSH-Konfigurationsdatei des Benutzers definiert ist