Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst OpenSSH Login mit Public Key schlägt fehl, mit Passwort funktioniert

Mitglied: Dennis93

Dennis93 (Level 1) - Jetzt verbinden

17.01.2019 um 14:48 Uhr, 375 Aufrufe, 19 Kommentare, 1 Danke

Hallo zusammen,

ich hatte hier schon nach einer Anleitung für einen SFTP Server mit Linux gefragt, habe dort auch Antworten bekommen.

Ich habe jetzt nach folgender Anleitung mir mit OpenSSH unter Debian den SFTP Server installiert:
Debian SFTP-Server einrichten

Das ganze funktioniert mit Passwort einwandfrei. Anschließend habe ich mit Puttygen mir einen Public und Private Key erstellt.

Danach folgende Befehle über Putty auf dem Debian ausgeführt um das Login mittels Public Key zu ermöglichen:
01.
cd /home/username
02.
mkdir .ssh
03.
chmod 700 .ssh
04.
touch .ssh/authorized_keys
05.
chmod 700 .ssh/authorized_keys
Anschließend habe ich den Inhalt aus dem Puttygen Fenster (für OpenSSH, steht extra dabei) mittels nano in die Datei authorized_keys geschrieben:

01.
nano .ssh/authorized_keys
Anschließend habe ich den SSH Dienst neugestartet mit

01.
/etc/init.d/ssh restart
Der Login mit meinem Private Key vom Client aus funktioniert allerdings leider trotzdem noch nicht. Ich habe auch versucht den Inhalt der authorized_keys Datei zu löschen und mit folgendem Befehl aus der Datei zu importieren:

01.
cat /home/username/upload/public.pub >> /home/username/.ssh/authorized_keys
Dort hat er dann aber natürlich die SSH2 Version eingetragen, die durch Putty als Datei erstellt wurde. Auch das hat nicht funktioniert.

Ich habe mir nun mal das Log angeguckt und dort steht nur folgendes:

01.
Jan 17 14:46:44 SFTP-Server sshd[2468]: error: Received disconnect from 192.168.80.205 port 58941:13: Unable to authenticate [preauth]
02.
Jan 17 14:46:44 SFTP-Server sshd[2468]: Disconnected from 192.168.80.205 port 58941 [preauth]
Hat jemand eine Idee, woran es noch liegen könnte?

Danke im Voraus!
Mitglied: bloodstix
17.01.2019 um 14:55 Uhr
Hallo,

lass doch die Verbindung mal mit -vvv laufen (geht beim linux-SSH-Client, mal schauen obs da bei Putty ähnliches gibt), dann siehst du besser, was genau schief läuft.

Wo liegt denn der public-Key vom verbindenden Benutzer? In /home/username/.ssh/* ?

Gruß
bloody
Bitte warten ..
Mitglied: Dennis93
17.01.2019 um 14:58 Uhr
Wie genau mache ich das mit "-vvv"?
Ich möchte es ja nachher eigentlich mit WinSCP oder FileZilla nutzen. Kenne mich mit Linux leider nur sehr rudimentär aus

Der Public-Key vom verbindenden Benutzer liegt in /home/username/.ssh/authorized_keys

Also ist in der Datei eingetragen.
Bitte warten ..
Mitglied: bloodstix
17.01.2019, aktualisiert um 15:03 Uhr
Mit "-vvv" meine ich: Du kannst den SSH-Client, zumindets unter Linux, mit "sehr verbosem logging" starten, so das er alle möglichen Details zum Verbindungsaufbau preis gibt. U.a. welcher key genutzt wird usw.

Nein ich meinte, wo der Key auf dem Windows-Rechner liegt. Putty muss den entsprechenden Key, den du in authorized_keys eingetragen hast, beim Verbinden vom Client an den Server mitgeben, sonst kann es nicht funktionieren. Sicher das hier die Pfade stimmen?

01.
Question: 
02.
How does one enable Putty debug in Centrify Putty/stock Putty?
03.

04.
Answer:
05.
A) If you are using Centrify Putty or Stock Putty
06.
Configuring PuTTY Debug Logs:
07.

08.
       From the PuTTY Configuration, in the left pane, click on  "Logging" under "Session".
09.
       On the right, ensure "Log all session output" or "Log SSH packet data" is selected.
10.
       Note the path to the log file which needs to be sent along with sshd logs.
Bitte warten ..
Mitglied: Dennis93
17.01.2019 um 15:09 Uhr
Habe mal im FileZilla das Logging hochgeschraubt! Dabei kam folgendes:

01.
Status:	Verbindung zum Server getrennt
02.
Trace:	CControlSocket::DoClose(66)
03.
Trace:	CControlSocket::DoClose(66)
04.
Trace:	CControlSocket::DoClose(66)
05.
Trace:	CFileZillaEnginePrivate::ResetOperation(0)
06.
Status:	Verbinde mit 192.168.80.206...
07.
Trace:	CControlSocket::SendNextCommand()
08.
Trace:	CSftpDeleteOpData::Send() in state 0
09.
Trace:	Going to execute C:\Program Files\FileZilla FTP Client\fzsftp.exe
10.
Antwort:	fzSftp started, protocol_version=8
11.
Trace:	CSftpDeleteOpData::ParseResponse() in state 0
12.
Trace:	CControlSocket::SendNextCommand()
13.
Trace:	CSftpDeleteOpData::Send() in state 2
14.
Befehl:	keyfile "C:\SFTP\key\private.ppk"
15.
Trace:	CSftpDeleteOpData::ParseResponse() in state 2
16.
Trace:	CControlSocket::SendNextCommand()
17.
Trace:	CSftpDeleteOpData::Send() in state 3
18.
Befehl:	open "username@192.168.80.206" 22
19.
Trace:	psftp: Implicit session load.
20.
Trace:	Connecting to 192.168.80.206 port 22
21.
Trace:	We claim version: SSH-2.0-FileZilla_3.39.0
22.
Trace:	Server version: SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u4
23.
Trace:	Using SSH protocol version 2
24.
Trace:	Doing ECDH key exchange with curve Curve25519 and hash SHA-256
25.
Trace:	Server also has ecdsa-sha2-nistp256/ssh-rsa host keys, but we don't know any of them
26.
Trace:	Host key fingerprint is:
27.
Trace:	ssh-ed25519 256 03:fb:4f:9b:b9:3b:db:9c:65:6a:a4:f8:d1:54:e8:c9 xAoEd+mpA1+omd5IPcVsX56tGD1k++G0y7hODRIfH1o=
28.
Trace:	Initialised AES-256 GCM client->server encryption
29.
Trace:	Initialised AES256 GCM client->server MAC algorithm (in ETM mode) (required by cipher)
30.
Trace:	Initialised AES-256 GCM server->client encryption
31.
Trace:	Initialised AES256 GCM server->client MAC algorithm (in ETM mode) (required by cipher)
32.
Trace:	Successfully loaded 1 key pair from file
33.
Trace:	Offered public key from "C:\SFTP\key\private.ppk"
34.
Trace:	Server refused our key
35.
Befehl:	Pass: 
36.
Trace:	Sent password
37.
Trace:	Password authentication failed
38.
Fehler:	Authentifizierung fehlgeschlagen.
39.
Trace:	CControlSocket::DoClose(1030)
40.
Trace:	CControlSocket::ResetOperation(1094)
41.
Trace:	CSftpDeleteOpData::Reset(1094) in state 3
42.
Fehler:	Kritischer Fehler: Herstellen der Verbindung zum Server fehlgeschlagen
43.
Trace:	CFileZillaEnginePrivate::ResetOperation(1094)
Bitte warten ..
Mitglied: bloodstix
17.01.2019 um 15:11 Uhr
01.
Offered public key from "C:\SFTP\key\private.ppk"
Müsste das nicht auf eine public.ppk o.ä, zeigen? Immerhin soll der Public-Key geoffered werden und nicht der private.
Bitte warten ..
Mitglied: Dennis93
17.01.2019 um 15:12 Uhr
Okay, es MUSS irgendein Berechtigungsproblem sein.
Ich habe etwas ausprobiert.

Habe folgendes getan:

01.
chmod 0755 /home/username/.ssh
02.
chmod 0755 /home/username/.ssh/authorized_keys
03.
/etc/init.d/ssh restart
Anschließend funktioniert der Login mit Public & Private Key einwandfrei!

Komisch!
Bitte warten ..
Mitglied: Exception
17.01.2019 um 15:13 Uhr
Moin,

Nein ich meinte, wo der Key auf dem Windows-Rechner liegt.

das ist dann aber der private Key.

Wie genau mache ich das mit "-vvv"?

das geht nur mit dem OpenSSH-Client. Bei anderen SSH Clients musst du in den Einstellungen bzw. Dokumentation nachschauen, wo die das Log abspeichern.

Hier mal für WinSCP:
https://winscp.net/eng/docs/ui_pref_logging

Viele Grüße,
Exception
Bitte warten ..
Mitglied: bloodstix
17.01.2019 um 15:14 Uhr
Ist ja auch nur logisch. Der SSH-Server läuft ja nicht als der Benutzer, als der du dich anmelden willst.
Wenn du dann wie im Eingangspost geschrieben "0700" gemacht hast, darf der Server da in die authorized_keys
gar nicht reinschauen.
DAS hätte aber aus dem Logfile am Server ersichtlich sein müssen!
Bitte warten ..
Mitglied: Dennis93
17.01.2019 um 15:18 Uhr
Okay, also ist Berechtigung mit 755 richtig?

Dann wahrscheinlich nur noch eine kleine Frage.

Ich habe in der /etc/ssh/sshd_config Datei folgendes drinstehen:

01.
Match User username
02.
ChrootDirectory /home/username
03.
ForceCommand internal-sftp
Nun sieht der User ja, wenn er sich mit WinSCP oder FileZilla einloggt folgende Dateien:
17-01-2019 15-17-32 - Klicke auf das Bild, um es zu vergrößern

Wie kann ich einstellen, dass er nur den Ordner "upload" sehen soll und auch nur dort drin etwas machen darf?
Bitte warten ..
Mitglied: Dennis93
17.01.2019 um 15:23 Uhr
Wie kann ich einstellen, dass er nur den Ordner "upload" sehen soll und auch nur dort drin etwas machen darf?

Ich revidiere, erstellen und löschen kann der user dort nichts, er kann lediglich die Dateien sehen (und das auch nur im FileZilla, im WinSCP nicht). Also von mir aus eigentlich okay.
Bitte warten ..
Mitglied: 137846
17.01.2019, aktualisiert um 15:43 Uhr
Zitat von bloodstix:

Ist ja auch nur logisch. Der SSH-Server läuft ja nicht als der Benutzer, als der du dich anmelden willst.
Wenn du dann wie im Eingangspost geschrieben "0700" gemacht hast, darf der Server da in die authorized_keys
gar nicht reinschauen.
Blödsinn!
Lesen: https://man.openbsd.org/sshd
01.
~/.ssh/
02.
    This directory is the default location for all user-specific configuration and authentication information. There is no general requirement to keep the entire contents of this directory secret, but the recommended permissions are read/write/execute for the user, and not accessible by others.
03.

04.
~/.ssh/authorized_keys
05.
    Lists the public keys (DSA, ECDSA, Ed25519, RSA) that can be used for logging in as this user. The format of this file is described above. The content of the file is not highly sensitive, but the recommended permissions are read/write for the user, and not accessible by others.
06.

07.
    If this file, the ~/.ssh directory, or the user's home directory are writable by other users, then the file could be modified or replaced by unauthorized users. In this case, sshd will not allow it to be used unless the StrictModes option has been set to “no”.
So ist es richtig:
01.
chmod 700 /root/.ssh
02.
chmod 600 /root/.ssh/authorized_keys
Besitzer checken.
Bitte warten ..
Mitglied: Dennis93
17.01.2019 um 15:48 Uhr
Angelegt hatte ich den Benutzer und damit auch die Home-Ordner mit dem Benutzer "admin" bzw. mit su Befehl als root (gehe ich von aus?).

Muss ich dann den Besitzer ändern auf den User "username"? Wie genau mache ich das?
Bitte warten ..
Mitglied: 137846
LÖSUNG 17.01.2019, aktualisiert um 15:56 Uhr
Zitat von Dennis93:
Muss ich dann den Besitzer ändern auf den User "username"? Wie genau mache ich das?
Nur wenn du das .ssh Verzeichnis des Users auch mit Root angelegt hast, denn dann ist Root Besitzer von Ordner und file!
Ändern von Besitzern des dirs und des files machst du so:
01.
chown username:username /home/username/.ssh/
02.
chown username:username /home/username/.ssh/authorized_keys
Wenn du das ganze dagegen im Kontext des Users gemacht hast sind die Files schon im Besitz des jeweiligen Users, und du brauchst das Besitz übertragen nicht machen.

Ein ls -la oder ll zeigt dir die aktuellen Rechte und Besitzer.
Bitte warten ..
Mitglied: 137846
17.01.2019, aktualisiert um 15:59 Uhr
Und wo du dabei bist, einfach mal hier die Grundlagen anlesen! Dann sind auch solche "Rateaktionen" überflüssig.
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Public_Key_Authentication

Nur Anleitungen folgen ist zwar schön und gut, bringt dich aber ehrlich gesagt auf der Wissenbasis zum Thema keinen Schritt weiter. Gewisse Unix-Grundlagen sind einfach unverzichtbar.
Bitte warten ..
Mitglied: Dennis93
17.01.2019 um 16:05 Uhr
So sieht es aktuell aus, also übertrage ich die Rechte auf den User und passe dann mit chmod die Berechtigung wieder dementsprechend an:
17-01-2019 16-04-03 - Klicke auf das Bild, um es zu vergrößern

Danke für die Hilfe @137846 !!

Ja, ich bin sonst zu 99,9% im Windows Umfeld aktiv, arbeite mich jetzt aber mal etwas mehr in die Marterie Linux ein.
Bitte warten ..
Mitglied: 137846
17.01.2019, aktualisiert um 16:15 Uhr
Noch als Hinweis wenn du mit chroot arbeitest, kann es je nach Pfad zur Situation kommen das der Pfad zur authorized_keys nicht mehr stimmt und du dann den Pfad in der sshd_config anpassen musst, weil dem User dann unter umständen der Zugriff auf die authorized_keys nicht mehr möglich ist wenn ein Pfad außerhalb des homes verpasst wird:
https://wiki.archlinux.org/index.php/SFTP_chroot
Dort den Hinweis unter Fixing path for authorized_keys lesen.
Bitte warten ..
Mitglied: it-fraggle
17.01.2019 um 17:45 Uhr
Der Klassiker.
Bitte warten ..
Mitglied: th30ther
17.01.2019 um 23:07 Uhr
moinsen,
ich habe auch lange rumgeschraubt damit...geholfen haben mir folgende Tips (und ja, die verfluchten Rechte sind für nicht linuxer oft ein Stolperstein...hier ist ja eigentlich schon alles, was die Rechte angeht, beantwortet)...trotzdem hier meine link-tips:

https://www.synology-wiki.de/index.php/Ssh_mit_Zertifikaten_absichern

https://forum.synology.com/enu/viewtopic.php?t=126166

https://wiki.ubuntuusers.de/chmod/

Zugegeben: bei den ersten beiden handelt es sich um Synology NAS Empfehlungen, die aber AFAIK generell wissenswert sind, der dritte link ist eher Basic-knowledge, was chmod angeht...

grüßle
th30ther
Bitte warten ..
Mitglied: LordGurke
18.01.2019, aktualisiert um 00:05 Uhr
Um es nochmal zusammenzufassen:
Damit ein SSH-Key funktioniert müssen ALLE folgende Dinge erfüllt sein:
  • Der Key muss in ~/.ssh/authorized_keys des Benutzers hinterlegt sein
  • Die Datei authorized_keys muss dem Benutzer gehören, der sich mit dem Key einloggen soll (chown benutzername)
  • Die Datei authorized_keys darf nur vom Eigentümer verändert und gelesen werden (chmod 0600)
  • Das Verzeichnis ".ssh", in dem sich diese Datei befindet, darf nur vom Eigentümer geschrieben werden (chmod 0700)

Wenn du den Benutzer "geröllheimer" angelegt hast und dich als dieser Benutzer mit Key anmelden willst, muss dein Screenshot also aussehen:

Für das Verzeichnis ".ssh":
01.
drwx------ 2 geröllheimer users 4096 Jan 17 15:45 .ssh
Für die darin liegende authorized_keys:
01.
-rw------- 2 geröllheimer users 3,6k Jan 17 15:45 authorized_keys
Ist auch nur ein einziger der genannten Punkte nicht erfüllt, wird die authorized_keys aus Sicherheitsgründen ignoriert.
Denn wenn die Datei zum Beispiel aufgrund falscher Berechtigungen durch andere Benutzer des Systems verändert werden könnte, wäre das ein echtes Sicherheitsproblem (denn ein Nutzer könnte dadurch seinen Key hinterlegen und sich als der andere Nutzer anmelden) und das will man verhindern.
Bitte warten ..
Ähnliche Inhalte
RedHat, CentOS, Fedora

Public Key für RPM Paket für CENTOS7

Frage von winlinRedHat, CentOS, Fedora6 Kommentare

Hallo Leute, beim yum update erhalte ich folgenden Fehler: Wie kann ich dieses Problem lösen? Ich lade meine updates ...

Microsoft Office

SMIME Speichert Public Key nicht - Android SMIME Exchange

Frage von disem1Microsoft Office

Moin, ich habe aktuell ein Problem bei mehreren Clients, dass die öffentlichen Zertifikate nicht im Outlook 2016 zum Kontakt ...

Windows Netzwerk

Guter SSH-Server für Windows - Public-Key ohne Reboot

Frage von Der-PhilWindows Netzwerk3 Kommentare

Hallo! Ich suche gerade nach einem brauchbaren SSH-Server für Windows 2016. Authentifizierung muss möglich sein per PublicKey. Wichtig ist, ...

TK-Netze & Geräte

Siemens - Hipath 3300 - Passwort resetten - Login

Frage von PiLoTTK-Netze & Geräte2 Kommentare

Hallo zusammen, wir haben eine Firma übernommen und dort steht eine Hipath 3300 - inkl. LAN-Modul. So wie es ...

Neue Wissensbeiträge
Windows 7

Windows 7 u. Server 2008 (R2) SHA-2-Update kommt am 12. März 2019

Information von kgborn vor 1 TagWindows 74 Kommentare

Kleine Info für die Admins der oben genannten Maschinen. Ab Juli 2019 werden Updates von Microsoft nur noch mit ...

Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Information von ChriBo vor 2 TagenFirewall2 Kommentare

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 4 TagenInternet1 Kommentar

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 4 TagenGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Heiß diskutierte Inhalte
Hardware
IT-Werkzeugkoffer bis 50,- EUR
gelöst Frage von departure69Hardware40 Kommentare

Hallo. Ich bin als IT-Systembetreuer einer Gemeinde zusätzlich auch der IT-Systembetreuer einer Grund- und Hauptschule. Dort muß ich jedoch ...

Netzwerke
Verteilung von Programmdaten außerhalb des internen Netzwerkes
Frage von mertaufmbergNetzwerke24 Kommentare

Guten Morgen liebe Administratoren, ich versuche zurzeit eine möglichst sichere und einfache Lösung zu suchen, um ein Programmverzeichnis über ...

Netzwerkmanagement
Richtfunknetzwerk mit vielen Hops stabiler gestalten
Frage von turti83Netzwerkmanagement21 Kommentare

Hallo, in meinem Dorf habe ich vor ca. einem Jahr ein Backbone aufgebaut um die Nachbarschaft mit Internet zu ...

Hyper-V
Intel MSC Raid 5 Rebuild
Frage von DannysHyper-V19 Kommentare

Hallo Community, Ich habe einen Modul Server von Intel in Betrieb. Dort ist eine Festplatte aus dem Raid 5 ...