In der IT-Welt mit SINN

Was so läuft ...

Public Key Authentication im SSH Server von RemotelyAnywhere

by Andreas Fleischmann 1. Mai 2005 20:47

Public Key Authentication ist dazu da, sich per SSH auf dem RemotelyAnywhere Host einzuloggen oder Dateien zu übertragen, ohne sich jedes Mal mit einem Passwort authentifizieren zu müssen. Technisch gesehen werden zwei zueinander passende Schlüssel-Dateien erzeugt werden, wobei in der einen der Private Key und in der anderen der Public Key steht. Der Private Key bleibt auf dem Client beim Benutzer und muss vor fremdem Zugriff geschützt werden; der Public Key hingegen wird auf dem RemotelyAnywhere Host hinterlegt. Wenn der Benutzer sich nun anmelden möchte, überprüft der SSH Server von RemotelyAnywhere, ob er im Besitz eines zum hinterlegten Public Key passenden Private Keys ist, und gewährt nur dann den Zugang.

Um eine solches Schlüsselpaar zu erstellen kann man verschiedene Tools verwenden.
Jeder SSH Client bringt die entsprechenden Tools zum generieren der Schlüssel-Dateien mit.

Kostenlose SSH Clients für Windows

  • PuTTY: A Free Telnet/SSH Client
  • WinSCP

Am Beispiel von Putty:

  1. Schlüsselgenerator puttygen.exe starten
  2. Der Schlüsseltyp wird auf SSH-2 DSA festgelegt
  3. Die Anzahl der Bits kann man bei 1024 belassen
  4. Mit Generate wird das Schlüsselpaar generieren.
  5. Der Private Key wird mit Hilfe von Save private key an einem sicheren Ort auf dem Client gespeichert
  6. Achtung: Den passenden Public Key kopiert man oben im Fenster aus der Textbox in die Zwischenablage und von dort in eine Textdatei mit Hilfe des Editors und nicht über die Schlatfläche "Save public key".

 

SSH Server für RemotelyAnywhere konfigurieren

Als erstes muss im Homeverzeichnis des Benutzer, mit dem man sich einloggen will, auf dem RemotelyAnywhere Host einen Ordner namens ".ssh" erstellt werden.
Anmerkung: Der Windows Explorer kann keine Ordner erstellen, die mit einem "." beginnen. Am besten geht das auf der Kommandzeile.

Beispiel:
cd "Dokumente und Einstellungen\andi\"
md .ssh

In diesem Ordner erstellt man nun eine leere Textdatei namen "authorized_keys". Diese Datei enthält später alle Public Keys des Benutzers.
Anmerkung: Diese Datei hat keine Dateierweiterung.

Beispiel mit 2 Public Keys (Zeilen gekürzt):
ssh-dss AAAAB3NzaC1kc3MAAACBAIGuJ9Hn9/RoBqNWq3SYJoUMmSpdux0NwB9yn0kSlN ...
ssh-dss AAAAB3NzaC1kc3MAAACBAO9d8i+iwHqWjEXlzs2wP+VwvzO5WC2HEqAFiMkjYL ...

Den zuvor erstellten Public Key kann in die Datei "authorized_keys" per Copy&Paste einfügen.
Jeder Public Key steht in einer Zeile. Am besten schaltet man im Editor den Zeilenumbruch aus, damit man ungewollte Zeilenumbrüche erkennt.
Eleganter geht das ganze auf der Kommandozeile.

Beispiel:
type PublicKey.txt >> authorized_keys
Dabei wird der Inhalt der Datei PublicKey.txt einfach an die Datei authorized_keys angehängt.

Jetzt muss man nur noch im SSH Server in RemotelyAnywhere die Einstellung "Public key authentication" aktivieren. Ein Neustart des Computers ist erforderlich, da das "Authentication Package" von OpenSSH dadurch aktiviert wird.

Jetzt muss man nur noch dem SSH Client beibringen, den Privat Key zu verwenden.
Am Beispiel von Putty erfolgt das über den Knoten SSH | Auth.
Dort wird einfach der Pfad zur Private Key Datei angegeben.

Tags: , , , ,

RemotelyAnywhere