Hier möchte ich erklären wie ein Benutzer auf einem Debiansystem angelegt wird, der nur sFTP Zugang mit SSH-Key hat und in einem bestimmten Verzeichnis eingesperrt ist.
Als erstes wird ein Benutzer angelegt der keine LoginShell hat und der sich nicht via Passwort am Server anmelden kann.
adduser --shell /bin/false --disabled-password BENUTZERNAME
Anschließend wird ein entsprechendes Schlüsselpaar mit 2048 Bit erzeugt.
sudo -H -u BENUTZERNAME ssh-keygen -b 2048 -t rsa
Der erzeugte Public-Key wird in die authorized_keys eingetragen.
cat /home/BENUTZERNAME/.ssh/id_rsa.pub >> /home/BENUTZERNAME/.ssh/authorized_keys
Zu guter Letzt muß noch die Datei /etc/ssh/sshd_config erweitert werden.
Das sFTP Subsystem umstellen.
#Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp
Am Ende noch folgendes einfügen.
Match user BENUTZERNAME ChrootDirectory /sftp-verzeichnis X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
Wenn AllowTcpForwarding auf yes umgestellt wird, hat der User zusätzlich die Möglichkeit Portforwarding zu nutzen.