Ich möchte meinem sftp chroot-Verzeichnis die Berechtigung für öffentliche Schlüssel hinzufügen, bekomme aber immer:
%Vor%Chroot funktioniert, weil die Autorisierung mit Passwort möglich ist. Ich habe ein anderes Konto auf diesem Host ohne Chroot und es funktioniert mit diesem Schlüssel. Ich habe es viele Male versucht, aber es funktioniert immer noch nicht.
Auf dem Server in auth.log gibt es nur: Verbindung geschlossen durch xxx [preauth]
Dies ist mein Verzeichnis:
%Vor%Mein Benutzer:
%Vor%Meine SSH-Konfiguration:
%Vor%Bitte helfen Sie.
Ich habe diese Lösung versucht (indem ich AuthorizedKeysFile in den Match-Block gesetzt habe) und sshd -T
beschwert sich:
(RHEL 6.6, openssh 5.3p1-104)
LÖSUNG: Die Datei authorized_keys (und das Verzeichnis .ssh des Benutzers) muss sich in dem Verzeichnis befinden, das von / etc / passwd, außerhalb des Chroot-Verzeichnisses definiert wurde.
Zum Beispiel (mit den OP-Benutzernamen / uids):
/ etc / passwd:
Erzeuge Verzeichnis /home/backup
, gehört zu Root
Erstellen Sie das Verzeichnis /home/backup/.ssh
, ändern Sie den Besitz in die Sicherung, chmod 700 /home/backup/.ssh
Kopieren Sie die Datei authorized_keys in /home/backup/.ssh
, chmod 400 authorized_keys
/ etc / ssh / sshd_config wird zu
%Vor%Die Chroot-Verzeichnisstruktur ist dann:
%Vor% Hinweis: /sftp/backup/home/backup
ist leer, es gibt nur einen Pfad, der aussieht wie die nicht-chroot /home/backup
- das .ssh
Verzeichnis ist /home/backup/.ssh
nicht /sftp/backup/home/backup/.ssh
Problem gelöst.
Ich habe es geändert: AuthorizedKeysFile /sftp/backup/incoming/.ssh/authorized_keys zu: AuthorizedKeysFile /sftp/%u/.ssh/authorized_keys