Mit Public-Key-Authentifizierung verbinden
SSH ermöglicht eine Verbindung zur Steuerung, die sicher, verschlüsselt und authentifiziert ist. So können Sie die Fernverwaltung der Steuerung in einem abgesicherten Kontext durchführen.
Die Authentifizierung kann über die Eingabe von Zugangsdaten (Benutzername und Passwort) erfolgen. Sie können aber auch mit einer schlüsselbasierten Authentifizierung (Public-Key-Authentifizierung) eine stärkere Methode wählen. Der Benutzer meldet sich dabei mit Hilfe eines Schlüssels an der Steuerung an. Ein Schlüssel besteht aus einem öffentlichen und einem privaten Schlüssel. Ein solches Schlüsselpaar ist wesentlich schwerer zu kompromittieren als ein Kennwort.
Beim Anmeldevorgang wird überprüft, ob der öffentliche Schlüssel der Steuerung zum privaten Schlüssel des Entwicklungssystems passt. Wenn das der Fall ist, wird der Zugang gewährt, ohne dass ein Kennwort verwendet wird.
Die in CODESYS verwendeten SSH-Schlüssel erstellen Sie auf dem Entwicklungssystem unter Windows. Dabei können Sie optional eine Passphrase (Passwort-Phrase) angeben, so dass sich die Sicherheit der Public-Key-Authentifizierung um einen weiteren Faktor erhöht. Den öffentlichen Schlüssel können Sie auf eine oder sogar mehrere Steuerungen kopieren, was beispielsweise bei einer Maschine erwünscht sein kann, die aus mehreren Steuerungen besteht. Der private Schlüssel bleibt dabei immer auf dem Entwicklungssystem und darf auf keinen Fall weitergegeben werden.
Wichtig
Geben Sie den privaten Schlüssel niemals weiter.
SSH-Key erstellen
Erstellen Sie zunächst unter Windows einen SSH-Key bestehend aus einem privatem und einem öffentlichem Schlüssel.
Installieren Sie das Open-Source-Tool “ PuTTY“.
Unter
C:\Program Files (x86)\PuTTY
finden Sie die verschiedenen Anwendungen.Öffnen Sie das Tool „PuTTYgen“.
Der folgende Dialog erscheint.
Wählen Sie die Option RSA und danach die Schaltfläche Generate.
Die Erstellung des Schlüssels beginnt.
Bewegen Sie währenddessen die Maus in der freien Fläche unter dem Fortschrittsbalken, bis der Schlüssel erstellt ist.
Folgender Dialog erscheint:
Falls erforderlich, können Sie in Key passphrase und Confirm passphrase eine sichere und eindeutige Passphrase vergeben.
Wenn Sie eine Passphrase vergeben haben, sind die Schlüssel zusätzlich gesichert. Jedes Mal, wenn Sie sich in CODESYS auf Ihre Steuerung schlüsselbasiert einloggen, werden Sie die Passphrase benötigen. Halten Sie die Passphrase geheim, so dass nur Zugangsberechtigte sie kennen.
Wählen Sie die Schaltfläche Save private key und geben Sie als Dateiname beispielsweise
serviceuser.ppk
ein.Wählen Sie Speichern.
Der private PPK-Schlüssel ist erstellt.
Wählen Sie den Befehl Conversions → Export OpenSSH key.
Geben Sie einen Dateinamen an, beispielsweise
serviceuser.openssh
.Der private OPENSSH-Schlüssel ist erstellt.
Selektieren Sie nun im Textfeld Public key for pasting into OpenSSH authorized_keys file die Zeichenfolge vollständig.
Kopieren Sie den String mit Kontextmenü → Kopieren in die Zwischenablage und von dort in eine Textdatei. Benennen Sie diese beispielsweise
serviceuser.pub
.Der öffentliche PUB-Schlüssel ist erstellt.
Verschieben Sie die Schlüssel an einen geeigneten, vielleicht sogar versteckten Speicherort auf dem Entwicklungsrechner. Oder sichern Sie die Dateien auf einem USB-Stick, der beim Entwicklungssystem bleibt.
Beispielweise befinden sich die privaten und der öffentliche Schlüssel nun im Verzeichnis
D:\PLCs\BeagleBone\Keys
.Anmerkung
Achten Sie darauf, dass der private Schlüssel stets auf dem Entwicklungssystem bleibt. Der private Schlüssel darf niemals weitergegeben werden.
Öffentlichen Schlüssel auf die Steuerung kopieren
Kopieren Sie den öffentlichen Schlüssel (beispielsweise serviceuser.pub
) auf Ihre Steuerung. Beachten Sie dabei die Angaben des Herstellers.
Privaten Schlüssel in CODESYS verknüpfen
Öffnen Sie CODESYS und wählen Sie den Befehl Tools → Control SL ausrollen.
Expandieren Sie auf der Registerkarte Kommunikation den Abschnitt Schlüsselbasiertes Einloggen.
Klicken Sie auf die Schaltfläche Schlüsseldatei hinzufügen.
Ein Dateiauswahldialog öffnet sich.
Wählen Sie den gewünschten privaten Schlüssel (OPENSSH-Datei) aus.
Beispiel:
serviceuser.openssh
Bestätigen Sie den Dialog mit OK.
Der Dialog beendet sich. CODESYS verfügt nun über den privaten Schlüssel.
Tipp
Sie können den privaten Schlüssel auch in den Optionen, Kategorie Runtime Deploy Tool verknüpfen.
Mit SSH-Key schlüsselbasiert einloggen
Loggen Sie sich mit dem SSH- Schlüssel auf der Steuerung ein.
Wählen Sie den Befehl Tools → Control SL ausrollen.
Das Runtime Deploy Tool öffnet sich.
Aktivieren Sie die Option SSH-Login schlüsselbasiert.
Eine Auswahlliste mit allen in CODESYS bekannten Schlüsseln erscheint.
Wählen Sie den gewünschten Schlüssel
serviceuser.openssh
aus.Geben Sie den Benutzernamen und wenn nötig die Passphrase in die jeweiligen Eingabefelder ein.
Klicken Sie auf die Schaltfläche Durchsuchen.
Im Netzwerk wird nach passenden Steuerungen gesucht. Das Ergebnis der Suche wird ausgegeben.
Wählen Sie aus der Liste der Steuerungen die gewünschte aus.
Wählen Sie beispielsweise den Befehl System-Info.
Der SSH-Server auf der Steuerung überprüft, ob der private Schlüssel zum öffentlichen Schlüssel passt. Wenn das der Fall ist, sind Sie authentifiziert und werden eingeloggt. Danach wird der Befehl ausgeführt und die Systeminformationen der Steuerung werden in CODESYS angezeigt.