Um nicht jedesmal beim Anmelden auf einen Server ein Passwort einzugeben, kann auch mit Schlüsseln gearbeitet werden.
Voraussetzung :
Ablauf:
Mit Hilfe des Programms „PUTTYGEN.exe“ wird ein Schlüssel für die Verbindung auf die Linux Systeme erzeugt.
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!
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
Auf dem Linux System den Open SSH Public Schlüssel (den aus der Box von PuTTYgen !) auf dem Linux Server kopieren/transferieren.
Ablauf:
Putty öffnen
Nun kann eine Anmeldung ohne Angabe eines Passwortes erfolgen.
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
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.
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:
ssh-keygen -t rsa -N '' -q -f ~/.ssh/id_rsa
die Datei Struktur anlegen
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.