Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:ssh:ssh-keys]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
anwenderwiki:ssh:ssh-keys [2020/11/11 11:55] – [8) Andere User den Zugang zum Server per ssh-key freischalten] martin.resanwenderwiki:ssh:ssh-keys [2020/11/11 11:56] (aktuell) – [8) Andere User das Login zum Server freischalten] martin.res
Zeile 1: Zeile 1:
 +====== Den ssh-Zugang des Users root durch Key-Authentification absichern ======
  
 +Ich will hier kurz beschreiben, wie das geht (es gibt auch andere Möglichkeiten).
 +Die Anleitung bezieht sich auf das Erschaffen der keys für root.
 +Soll für einen anderen user keys erschaffen werden, so muss die Tilde ~ in der Anleitung durch den Pfad zum Homeverzeichnis des users ersetzt werden, sofern man nicht als dieser angemeldet ist.
 +
 +Man kann für root zwar auch ein Schlüsselpaar erschaffen, wenn man noch kein root-Passwort vergeben hat, die Anmeldung funktioniert dann aber nicht für den Benutzer root. Also ggf. noch "sudo passwd" ausführen und ein root-Passwort vergeben.
 +
 +<note>Um andere User per ssh-key am Server einzuloggen siehe unten</note>
 +
 +===== 1) Generieren des Schlüsselpaares =====
 +
 +Man wechselt in das Verzeichnis /root/.ssh/
 +
 +  cd /root/.ssh
 +
 +Das Schlüsselpaar wird hier erstellt mittels
 +
 +  ssh-keygen -t rsa
 +
 +Den vorgeschlagenen Namen und Pfad kann man übernehmen (/root/.ssh/id_rsa         )
 +Ein Passwort, das den Schlüssel später "unterwegs" schützt, sollte man vergeben.
 +Man erhält zwei Schlüssel **''id_rsa''** und **''id_rsa.pub''**. Die Datei 
 +**''id_rsa''** nimmt man mit (nach Hause ..)
 +**''id_rsa.pub''** muss auf dem Server an der richtigen Stelle hinterlegt werden:
 +
 +===== 2) Erstellen der Datei "authorized_keys" =====
 +Wir befinden uns ja noch immer in **''/root/.ssh/''**)
 +
 +  touch authorized_keys
 +  
 +===== 3) Anhängen des pub-keys an "authorized_keys" =====
 +
 +
 +  cat id_rsa.pub >> authorized_keys
 +  
 +===== 4) SSH-Dienst anpassen =====
 +
 +Eine Einstellung des sshd ändern und ssh neustarten:
 +Editieren der Datei /etc/ssh/sshd_config
 +Man muss nur ein # vor der Zeile
 +**''AuthorizedKeysFile %h/.ssh/authorized_keys''**
 +entfernen und sshd mittels
 +  /etc/init.d/ssh restart
 +neustarten (ich habe kein "d" vergessen)
 +Das geht auch, während man von außerhalb über ssh am server arbeitet.
 +
 +===== 5) Verwendung des Key unter Windows + putty =====
 +
 +Wenn man den Schlüssel **''id_rsa''** zuhause hat, muss man ihn noch in das putty Format umwandeln.
 +Dazu lädt man puttygen.exe von:
 +**''http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html''**
 +herunter, startet es und importiert den key über File->load privat key
 +Beim Laden des key wird man einmal nach dem Passwort gefragt, dass man beim Erstellen angegeben hatte. Dann sollte man noch ganz unten auf SSH-2 RSA umstellen und abschließend auf "Save privat key" drücken.
 +
 +===== 6) Verwendung des Key unter Linux =====
 +
 +Dazu den Key in das home des Users unter **''~/.ssh/id_rsa''** ablegen. Der Key wird aber von ssh nur verwendet, wenn er __nur__ für den User selbst lesbar ist, somit ggf.:
 +  chmod 600 /.ssh/id_rsa
 +
 +
 +===== 7) Öffnen der Sitzung: =====
 +
 +Man startet Putty und läd das Profil seiner Schule.
 +Dann geht man links auf "ssh"->"Auth" und drückt auf "Browse".
 +Dort wählt man den key aus, den man gerade mittels puttygen aus dem rsa-key erstellt hat.
 +Nun würde ich noch mal speichern und dann die Sitzung öffnen.
 +Man wird nach dem user gefragt und dann nach dem Passwort für den key (nicht das Linuxpasswort von root).
 +
 +
 +===== Stolperfallen: =====
 +
 +Nach dem Einloggen wird man noch nach dem Benutzer gefragt.
 +Dort muss ich den Benutzer angeben, in dessen authorized_keys der .pub key meines verwendeten keys ist (in unserem Fall "root").
 +Vorher muss ich natürlich das Passwort des keys eingeben (welches ich beim Erstellen vergeben und bei puttygen noch mal verwendet habe. Es hat gegebenenfalls nichts mit dem Linuxpasswort des Benutzers zu tun).
 +Diese keys funktionieren eigentlich genauso wie die von VPN. Auch dort wird der mobile Teil des keys (Zertifikat) mittels eines Passworts geschützt.
 +
 +Wofür ist das ganze Theater:
 +
 +<note important>
 +Am Ende sollte man in **''/etc/ssh/sshd_config''** eine Zeile ändern:
 +Am Ende steht 
 +"**''UsePAM yes''**"
 +daraus macht man
 +"**''UsePAM no''**" und "**''PasswordAuthentication yes''**" wird zu: "**''PasswordAuthentication no''**"
 +es wird kein Abgleich durch den ssh Dämon mit der lokalen userdatenbank mehr vorgenommen, es funktionieren nur noch Zertifikate!
 +</note>
 +
 +  /etc/init.d/ssh restart   
 +nicht vergessen!
 +
 +Den von puttygen generierten Key kann man auch einfach in WinSCP verwenden (auf der ersten Seite gibt es ein Feld für den private key)
 +
 +===== 8) Anderen User das Login zum Server freischalten =====
 +
 +In der Datei ''**/etc/security/access.conf**'' wird nur root, adm und administrator der Login am Server erlaubt:
 +
 +<code>
 +...
 +-:ALL EXCEPT root adm administrator:ALL
 +...
 +</code>
 +
 +Um weiteren Usern das Login zu erlauben fügt man  __vor__ dieser Zeile z.B. ein: 
 +<code>
 +...
 ++:pgmadmin meier schmitt:ALL
 +-:ALL EXCEPT root adm administrator:ALL
 +...
 +</code>
 [[anwenderwiki:ssh:ssh-keys]] anwenderwiki/ssh/ssh-keys.txt · Zuletzt geändert: 2020/11/11 11:56 von martin.res