Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:ssh_key_connect_oracle_linux8

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 ⇒ 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

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
linux/ssh_key_connect_oracle_linux8.txt · Zuletzt geändert: 2023/05/23 16:41 von gpipperr