SSH-Key wird trotz Hinterlegung bei Provider nicht genommen.

Azuro

Lt. Junior Grade
Registriert
Apr. 2012
Beiträge
422
Hi!

Nach mehreren Tagen von rumprobieren und verzweifeln an einem Problem mit den SSH-Login über Ubuntu bitte ich hier um Hilfe. Das Problem:
Zuallererst: Der Schlüssel wird von mir per:
Code:
ssh-keygen -t rsa -b 4096
in '/home/meinname/.ssh/id_rsa'
generiert und beim VPS Hoster hinterlegt. Wenn ich jetzt auf per
Code:
ssh 'serverIP'
einlogen will, erhalte ich, da ich die PasswortAuthenticion in der sshd_config deaktiviert habe, ein '/home/meinname/.ssh/id_rsa is a directory' darauf folgt ein permission denied. Der SSH-Login funktioniert bei zwei verschiedenen VPS Anbieter (alle Ubuntu-Server) nicht, womit ich annehme das etwas allgemeines nicht passt. Die Lese- und Schreibrechte sind alle nur für den Eigentümer (sudoer), auf meinen PC gesetzt. Natürlich hab ich sonst noch Root-Zugriff über den Anbieter, aber ich will für Ansible auf SSH umstellen.

Hoffe auf eine baldige sinnvolle Antwort von euch.

MfG
Azuro
 
Azuro schrieb:
'/home/meinname/.ssh/id_rsa
hast du das oder id_rsa.pub hinterlegt?
key auth aktiviert?

zeig mal gern deine sshd config.

und: wie wurde die authorized_hosts angelegt? welche permisseions hat die datei und der Ordner .ssh
 
  • Gefällt mir
Reaktionen: IBISXI
Hast du eine ssh-copy-id auf den Server gemacht? Oder das Zert auf dem Server hinterlegt?
Du musst den Key auf deinem System generieren und dann auf den Server kopieren.
 
Moin,

sshd config,du must den id_rsa.pub kopieren in die ~/.ssh/authorized_keys..
 
Azuro schrieb:
per:
Code:
ssh-keygen -t rsa -b 4096
in '/home/meinname/.ssh/id_rsa'
generiert und beim VPS Hoster hinterlegt.
id_rsa ist dein private key. Der darf dein Gerät niemals verlassen (außer die Zielmedien sind entsprechend sicher und nur für dich zugänglich). Wenn du ihn auf den Server übertragen hast MUSST du ihn verwerfen und einen neuen generieren. Nur der Inhalt der id_rsa.pub (der zugehörige public key) kommt auf den Server, und zwar in die ~/.ssh/authorized_keys. Diese Datei beinhaltet eine Liste aller public keys mit denen der entsprechende Nutzer sich einloggen darf.

Color-Coding: Pfad auf deinem Gerät, Pfad auf dem Server

Azuro schrieb:
in '/home/meinname/.ssh/id_rsa' generiert
Azuro schrieb:
'/home/meinname/.ssh/id_rsa is a directory' darauf folgt ein permission denied
id_rsa sollte kein Verzeichnis sein, sondern eine Textdatei mit deinem private key. Also du musst eigentlich nur ssh-keygen ausführen und es wird dir standardmäßig vorschlagen deinen key nach ~/.ssh/id_rsa zu schreiben.
 
  • Gefällt mir
Reaktionen: up.whatever und madmax2010
Und ganz wichtig können auch die Berechtigungen für die Datei id_rsa sein. Steht aber bestimmt auch im Wiki.
 
Marco01_809 schrieb:
id_rsa ist dein private key. Der darf dein Gerät niemals verlassen
sollte dein private key jemals auf irgendeinem VPS gelegen haben, loesch ihn und alles was dazu gehoert. Der ist als kompromitiert zu betrachten.
 
id_rsa ist der Ordner und ich hab immer nur den Pub auf den Server kopiert, also ist der Private nicht raufgeladen worden. Für den Ordner id_rsa gelten die gleichen Berechtigungen für den übergeordneten Ordner, nur der Besitzer kann in sehen und Verändern.

P.S: Außerdem hab ich schon probiert die Berechtigungen zu verändern, womit ich eine komplett andere Rückmeldung bekomme das es mit den Berechtigungen nicht passt, d.h.: bei den Berechtigungen müsste es passen.
P.P.S: Ich habe gerade die Berechtigungen bei den beiden Keys für den 'Besitzer nur auf Lesen geändert, aber er nimmt den Key auch nicht.
 
Zuletzt bearbeitet:
Azuro schrieb:
id_rsa ist der Ordner
Azuro schrieb:
'/home/meinname/.ssh/id_rsa is a directory' darauf folgt ein permission denied
Die Fehlermeldung sagt dir doch das Problem.
Du hast eben nicht ssh-keygen -t rsa -b 4096 erfolgreich durchgeführt oder du hast nachträglich rumgefummelt. Vielleicht erstellt ssh-keygen auch einen Unterordnern, wenn man z.B. aus Versehen ein / an den Defaultnamen anhängt o.ä.. id_rsa ist jedenfalls kein Ordner normalerweise, sondern eine Datei die deinen privaten Schlüssel enthält.
 
Ah, ok. Normalerweise wenn ich den Befehl in der Konsole ausführe legt er es im Home Ordner an, obwohl er immer nach einen Namen gefragt hat. D.h. Ordner id_rsa löschen und keygen im Ordner .ssh starten.

Wurde von mir korrigiert und die erste Fehlermeldung ist verschwunden und ja ich habe in den Ordner .ssh einen neuen Key generiert und beim Provider (dzt. Hetzner) hinterlegt. Aber trotz der Hinterlegung, ich kopiere den gesamten Inhalt des .pubkeys in das SSH Key Fenster, hab ich keinen Zugriff (permission denied). Wahrscheinlich muss ich mir nochmal die sshd_config zu Gemüte führen.
 
Zuletzt bearbeitet: (Update 11:16)
Es wird wirrer. Was ist ein SSH Key Fenster und was hat Hetzner damit zu tun? Wenn du einen vServer/VPS hast wo ein SSH-Server drauf läuft dann musst du den Key auf dem Server im Home-Verzeichnis deines Users in .ssh/authorized_keys eintragen. Das ist eine Textdatei (die du ggf. anlegen musst) wo in jeder (nicht-leeren) Zeile ein public key drinne steht. Hetzner hat damit gar nichts zu tun.
 
Azuro schrieb:
Normalerweise wenn ich den Befehl in der Konsole ausführe legt er es im Home Ordner an, obwohl er immer nach einen Namen gefragt hat. D.h. Ordner id_rsa löschen und keygen im Ordner .ssh starten.
Der Defaultordner bei ssh-keygen ist immer ~/.ssh/. Egal, von wo aus du ssh-keygen startest.

Marco01_809 schrieb:
Was ist ein SSH Key Fenster und was hat Hetzner damit zu tun?
In Hetzners Backend kann man SSH-Keys hinterlegen um sich dann mit diesen auf die Server einzuloggen.

Azuro schrieb:
permission denied
Mit -vv erhältst du mehr Infos.

Azuro schrieb:
Das ist "oddly specific" der pub-key heißt per default id_rsa.pub.

Die sshd_config wird dir voraussichtlich nicht schrecklich viel nutzen. Kenne die Architektur nicht so genau, aber da du Hetzners Backend verwendest wird vermutlich deren config verwendet.
Du könntest den Key ganz normal bei dir aufm Server hinterlegen, dann kannst du dir die sshd logs anschauen, da siehst du dann, was das Problem ist.. bzw. wir :D.

Nach deinen seltsamen Beschreibungen her solltest du mit ls -alh ~/.ssh/ anfangen bei der Fehlersuche.
 
@BeBur: ssh serverip(=x) -vv ergibt.:
Code:
OpenSSH_8.2p1 Ubuntu-4ubuntu0.3, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no fil
es
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 23.88.127.25 is address
debug2: ssh_connect_direct
debug1: Connecting to xx.xx.xxx.xx [xx.xx.xxx.xx] port 22.
debug1: connect to address xx.xx.xxx.xx port 22: Connection refused
ssh: connect to host xx.xx.xxx.xx port 22: Connection refused

ls -alh ergibt bei mir:
Code:
insgesamt 28K
drwx------   2 user user 4,0K Okt 26 11:16 .
drwx--x---+ 41 user user 4,0K Okt 26 11:25 ..
-rw-------   1 user user 3,4K Okt 26 11:02 id_rsa
-rw-r--r--   1 user user  741 Okt 26 11:02 id_rsa.pub
-rw-------   1 user user  444 Okt 26 11:03 known_hosts
-rw-------   1 user user  444 Okt 25 16:42 known_hosts.old

Also muss ich schon an die etc/ssh/ssh_config ran, oder?
 
Connection refused bedeutet dass auf dieser IP/Port Kombination nichts erreichbar ist. Das hat nichts mit der Authentifizierung zu tun.
Ist serverseitig der sshd gestartet? Ist die IP korrekt? Gibt es eine Firewall?
 
Zurück
Oben