Inhaltsverzeichnis
Putty mit SSH Key's verwenden
Um nicht jedesmal beim Anmelden auf einen Server ein Passwort einzugeben, kann auch mit Schlüsseln gearbeitet werden.
Voraussetzung :
- Putty mit allen Komponenten herunterladen
( ⇒ http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip ) - putty.zip in ein Verzeichnis wie d:\tools\putty entpacken
Ablauf:
- Putty Key auf dem Windows System mit dem Programm PuTTYgen.exe erzeugen
- SSH Key bzw. ssh Verzeichnis Struktur auf dem Linux System erzeugen
- Den Putty Key von Windows System auf dem Linux System hinterlegen
- Putty einrichten, eigenen Privat Key hinterlegen, User setzen
- pscp für das Kopieren von Dateien verwenden
- Putty Keys in weiteren SSH Programmen verwenden/hinterlegen
Putty Key mit PuTTYgen auf dem Windows System erzeugen
Mit Hilfe des Programms „PUTTYGEN.exe“ wird ein Schlüssel für die Verbindung auf die Linux Systeme erzeugt.
- Programm PUTTYGEN.exe starten
- SSH-2 RSA auswählen, falls später auch MoboXTerm mit gleichen Public Key verwendet werden soll
- SSH-2 DSA auswählen bei Bedarf und Wunsch
- * Mit „Generate“ Button Key Erzeugung starten
- Bei Bedarf Kommentar anpassen z.B. auf User und Hostnamen
- Public Key speichern ( im Putty Verzeichnis, in unseren Beispiel unter d:\tools\putty\jupiter_pub.key )
- Private Key speichern ( im Putty Verzeichnis, in unseren Beispiel unter d:\tools\putty\jupiter_priv.ppk ) ohne Passphrase ( damit später der Key ohne weitere Passwort Eingabe verwendet werden kann, zum Beispiel für pscp in einem Batch Programm )
- Key für die spätere evtl. Verwendung für openssh exportieren ( Menü Punkt „Conversions“/„Export OpenSSH Key“ ) (im Putty Verzeichnis, in unseren Beispiel unter d:\tools\putty\jupiter_openssh.id bzw. jupiter_openssh_rsa.id )
- OpenSSH public Key aus der Box im Programm über die Zwischenablage und einem Editor in einer Datei speichern, siehe Screenshot
- Exit
Der OpenSSH Key kann später noch für die Verwendung in anderen SSH Programmen wie MoboXterm nützlich sein, für MoboXterm allerdings nur in der RSA Variante!
SSH Key’s bzw. SSH Key Struktur auf dem Linux System erzeugen
Auf dem Linux System anmelden:
ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/oracle/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/oracle/.ssh/id_dsa. Your public key has been saved in /home/oracle/.ssh/id_dsa.pub. # oder alternativ mit RSA in einem Schritt ssh-keygen -t rsa -N '' -q -f ~/.ssh/id_rsa
Zwei Dateien werden erzeugt /home/oracle/.ssh/id_dsa und der public key unter /home/oracle/.ssh/id_dsa.pub
Mit dem public Key in der Datei /home/oracle/.ssh/id_dsa.pub kann später auf anderen Linux Hosts ebenfalls eine Authentifizierung ohne Passwort eingerichtet werden.
Siehe dazu auch den SSH Key Austausch für ein Cluster unter ⇒ Wichtige Shell Befehle für den DBA unter Linux / Solaris
Soll sich der Server selber mit zum Beispiel „ssh localhost“ anmelden können (wichtig für Cluster Installationen!), den public key gleich der „authorized_keys“ hinzufügen:
cat id_dsa.pub >> authorized_keys
Windows Key auf dem Linux System hinterlegen
Auf dem Linux System den Open SSH Public Schlüssel (den aus der Box von PuTTYgen !) auf dem Linux Server kopieren/transferieren.
Ablauf:
- Prüfen ob die Datei /home/oracle/.ssh/authorized_keys exisitert, falls nicht diese Datei anlegen
- Datei /home/oracle/.ssh/authorized_keys öffen und am Ende den Schlüssel einfügen und speichern ( am einfachsten über die Zwischenablage .-) )
Putty verwenden - Private Putty Key in Putty für die Verbindung auf den Linux Server hinterlegen
Putty öffnen
- IP Adresse oder Servernamen angeben
- Unter „Connection/SSH/Auth“ den private Key von Putty (die Datei mit der ppk Endung!) hinterlegen
- Auf „Connection/Data“ den Login User Name auf der Linux Maschine hinterlegen (Der User in dessen Keys der Public Key von der Windows Putty Umgebung unter Linux hinterlegt ist!)
Nun kann eine Anmeldung ohne Angabe eines Passwortes erfolgen.
Das SSH ftp Programm - pscp - mit einem Public Key verwenden
Mit pscp können unter Windows über die Kommandozeile Dateien per SSH auf das Zielsystem kopiert werden.
Dazu muss der OpenSSH Public Key (der aus der Box von PuTTYgen!) auf dem Zielsystem hinterlegt sein. Das haben wir bereits zuvor mit Putty durchgeführt und getestet.
Nun wird pscp mit dem private Windows Putty Key aufgerufen ( Schalter -i ) und es können ohne Passwort Abfrage die Daten kopiert werden.
Beispiel für das Kopieren vom Server auf den Windows Rechner mit dem SSH Protokoll 2 ( Schalter -2 ), dem User Oracle ( Schalter -l oracle ) und dem private Key der Putty Umgebung ( Schalter -i ) vom Server 192.168.178.181 die Datei /home/oracle/.bash_profile nach d:\temp .
pscp.exe -2 -l oracle -i jupiter_priv.ppk 192.168.178.181:/home/oracle/.bash_profile d:\temp\bash_profile
WinSCP mit Key verwenden
Das Programm WinSCP kann direkt mit dem vom Putty generierten Schlüsseln arbeiten. Dazu muss bei den Verbindungsoptionen nur der Hostname, der Linux User und der Pfad zum Schlüssel hinterlegt werden.
Das Programm MobaXterm mit dem gleichen private Key wie in Putty verwenden (Nur die RSA Variante wird unterstützt!)
In MobaXterm kann der gleiche Schlüssel wie in Putty verwendet werden, allerdings NUR wenn wir uns zuvor für die RSA Variante des Keys entschieden haben!
Dann können wir den, zuvor mit dem Putty Key Programm PuTTYgen exportierten, privaten OpenSSH Key verwenden.
In unserem Beispiel haben wir dazu den privaten Schlüssel in die Datei „jupiter_openssh_rsa.id“ exportiert und den public Key aus der Box in PuTTYgen in die Datei „jupiter_openssh.rsa_pub“ kopiert.
Normalerweise erzeugen wir in MobaXterm mit ssh-keygen - t rsa im ersten Reiter (den lokalen Bash Fenster) einen Schlüssel und kopieren den dazugehörigen Public Schlüssel in „id_rsa.pub“ in die „authorized_keys“ Datei auf dem Linux Client.
Damit wir nun in Putty und in MobaXterm den gleichen public Key verwenden können, müssen wir den Putty Private Key (bzw. hier nun die OpenSSH Variante unsers Private Keys) in das Arbeitsverzeichnis von MobaXterm kopieren, damit wir auch die gleichen Private Keys verwenden können!
Ablauf:
- Ersten Reiter in MobaXterm öffnen ( Bash Emulation auf den lokalen Rechner )
- Mit dem Befehl
ssh-keygen -t rsa -N '' -q -f ~/.ssh/id_rsa
die Datei Struktur anlegen
- Die Putty Key Dateien auf dem Rechner lokalisieren, in unseren Beispiel liegen die Dateien unter D:\tools\putty,
wir müssen allerdings in der Bash Emulation den dazu fassenden Unix Pfad finden:- „cd d:“ eingeben
- cd tools
- cd putty
- pwd - diese Aufgabe merken
- cd
- cd .ssh
- Den private und public Key in MoboXTerm nun mit der Putty Variante austauschen:
- cp /drives/d/tools/putty/jupiter_openssh_rsa.id rsa_id
- cp /drives/d/tools/putty/jupiter_openssh.rsa_pub id_rsa.pub
- Nun können wir die gleichen Schlüssel in Putty und MobaXterm verwenden
- Den public Key hatten wir ja zuvor bereits in unserer Putty Session auf dem Linux System hinterlegt!
Wie sieht das im MobaXterm Reiter aus:
Test in MobaXterm:
Im ersten Reiter per „ssh <user_name>@>server_name_mit_unseren _public_key“ anmelden, wird kein Passwort angefragt, hat es geklappt.