=====Oracle Linux 8 - SSH Key Anmeldung verwenden===== **Aufgabe:** Anmeldung per SSH Key Konfigurieren und bei Problemen debuggen Normalerweise ist das Einrichten von einen SSH Key für die Anmeldung recht einfach. Wenn es dann nicht funktioniert wird es dann schwirig. Siehe auch => [[windows:putty_pscp_ssh_key_connect|Putty mit SSH Key's unter Windows verwenden]] ---- ==== SSH Key einrichten ==== Schlüssel anlegen und verteilen: ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/home/anton/.ssh/id_ed25519): Created directory '/home/anton/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/anton/.ssh/id_ed25519. Your public key has been saved in /home/anton/.ssh/id_ed25519.pub. The key fingerprint is: SHA256:7DVOrlE4pow6HLE8bdwtz+fpIrPgLHkHZVBR/VNVJuA anton@guacamole01.pipperr.local The key's randomart image is: +--[ED25519 256]--+ | .oo.. ....=| | . .. .o | | . .E. | | . o. . o | | . = + .S = . | | = =oo+.B . | | . =o.o+o o | | =+..+ +o.. | | .+o..+.=+ | +----[SHA256]-----+ cd ~/.ssh ls -la -rw------- 1 anton anton 432 May 11 20:52 id_ed25519 -rw-r--r-- 1 anton anton 113 May 11 20:52 id_ed25519.pub Hier mit dem ed25519 Algorithmus, mehr dazu unter https://en.wikipedia.org/wiki/EdDSA und https://blog.peterruppel.de/ed25519-for-ssh/ Alle in einem Schritt: ssh-keygen -t ed25519 -N '' -q -f ~/.ssh/id_rsa Um sich lokal selber verbinden zu können, eigenen Schlüssel speichern: cat id_ed25519.pub >> authorized_keys Rechte setzen: chmod 700 .ssh chmod 600 .ssh/* chmod 644 .ssh/*.pub Testen: ssh -o NumberOfPasswordPrompts=0 -o StrictHostKeyChecking=no -l $USER localhost "echo check ssh connect" Schlüssel auf den anderen Knoten kopieren ssh-copy-id -i ~/.ssh/id_ed25519.pub anton@apex01 Dort per Password anmelden und auch dort die Rechte richtig setzen! ssh anton@apex01 chmod 700 .ssh chmod 600 .ssh/* chmod 644 .ssh/*.pub === Rechte beachten!=== Auf die richtigen Rechte auf dem .ssh Verzeichnis achten! |.ssh/ |0700 |rwx------ | |.ssh/*.pub |644 |rw-r--r-- | |.ssh/* |0600 |rw------- | Wird der Schlüssel nicht verwendet liegt es meist an den falsch gesetzten Rechten! ---- ==== Bei Fehlern debuggen ==== === Auf dem Zielhost Log überwachten=== Auf dem Ziel Host (Oracle Linux) das Login überwachen tail -f /var/log/secure #Falls falsche Rechte achten: May 11 21:12:40 guacamole01 sshd[4934]: Authentication refused: bad ownership or modes for file /home/anton/.ssh/authorized_keys Rechte richtig setzen bei "bad ownership or modes for file" , siehe oben! === Anmelden testen=== Kann sich der User überhaupt anmelden (mit Passwort!) ssh -v anton@apex01.pipperr.local Prüfen ob ssh Zugriff nicht eingeschränkt ist über den Parameter AllowUsers : vi /etc/ssh grep AllowUsers * vi sshd_config .. AllowUsers root oracle ansiblesvc .. Auch darauf achten das unter Oracle Linux 8 der Root User sich per Default nicht per SSH anmelden darf! === Anmelden debuggen === mit -vvv ssh Zugriff debuggen: ssh -vvv anton@apex01.pipperr.local # wenn ok dann: debug3: send packet: type 50 debug2: we sent a publickey packet, wait for reply debug3: receive packet: type 60 # auf diese Ausgabe bei Fehlern achten! debug3: send packet: type 50 debug2: we sent a publickey packet, wait for reply debug3: receive packet: type 51 Auf den "**debug2: we sent a publickey packet, wait for reply** und dann **debug3: receive packet: type 51**" achten! Dann stimmen die Rechte auf das .ssh Verzeichnis auf dem Zielhost nicht (siehe oben für die richtigen Rechte)! ---- ==== Im Oracle Cluster die Schlüssel verteilen ==== als root, grid, oracle User auf den beiden Maschinen racdb01 und racdb02 #generate key on every node ssh-keygen -t rsa #self cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh racdb01 #key on 2 ssh racdb02 ssh-keygen -t rsa # Copy public key from one node to the other #2 to 1 ssh racdb02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #1 to 2 ssh racdb02 ssh racdb01 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #self cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh racdb02 Testen auf JEDEM Knoten mit: ssh -o NumberOfPasswordPrompts=0 -o StrictHostKeyChecking=no -l $USER racdb01 "echo check ssh connect" ssh -o NumberOfPasswordPrompts=0 -o StrictHostKeyChecking=no -l $USER racdb02 "echo check ssh connect" ---- ==== In der MS Windows Powershell verwenden ==== In Windows 10 ist ssh etc. auch enthalten, d.h. es muss keine weitere Software installiert werden. Über die Powershell: PS C:\work> ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (C:\Users\gpipperr/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\gpipperr/.ssh/id_ed25519. Your public key has been saved in C:\Users\gpipperr/.ssh/id_ed25519.pub. The key fingerprint is: SHA256:ER8WwGHuglJOciqNDkdddexxxxxxxTWyYS72w9ZEtag7hNmM gpipperr@saturn The key's randomart image is: +--[ED25519 256]--+ | .=o+. | | = o++ . | | .*+* +o.. | |.ooBX.+.o. | |*.=Eo=..S | |*++o* . | |+o. . | |.. | | | +----[SHA256]-----+ cd C:\Users\gpipperr/.ssh/ PS C:\Users\gpipperr\.ssh> ls Directory: C:\Users\gpipperr\.ssh Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 23.05.2023 16:23 411 id_ed25519 -a---- 23.05.2023 16:23 98 id_ed25519.pub -a---- 12.03.2018 08:57 899 known_hosts PS C:\Users\gpipperr\.ssh> Get-Content -Path $env:USERPROFILE\.ssh\id_ed25519.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTccccccxxxxxxxxxxxxxxxxxxxxud9 gpipperr@saturn Den SSH Schlüssel auf den Linux Rechner übertragen über ein Login mit ssh über Schell mit normalen Passwort: PS C:\Users\gpipperr\.ssh> ssh oracle@10.10.10.90 oracle@10.10.10.90's password: [oracle@apex01:.ssh ]$ vi authorized_keys # Öffentlichen Schlüssel von oben eintragen [oracle@apex01:.ssh ]$ exit # neu anmelden PS C:\Users\gpipperr\.ssh> ssh oracle@10.10.10.90 Last login: Tue May 23 16:39:39 2023 from 10.10.10.1 [oracle@apex01:~ ]$ ---- ==== Quelle ==== Web: * https://superuser.com/questions/1137438/ssh-key-authentication-fails * https://www.cyberciti.biz/faq/how-to-set-up-ssh-keys-on-rhel-8/ * https://medium.com/ci-cd-devops/ssh-receive-packet-type-51-154288e46609