Sur mon serveur Ubuntu 16.04 LTS, j'aimerais effectuer les tâches suivantes:
Je travaille avec une version fraîchement installée d'Ubuntu 16.04.3 LTS, de sorte que tout est dans son état d'usine par défaut.
J'ai lu cette question et les réponses avec soin, mais je n'ai pas été en mesure de trouver une solution.
J'ai créé un utilisateur nonrootadmin
avec les privilèges Sudo.
J'ai créé un utilisateur nonadminsftp
membre du groupe sftpaccess
. Le répertoire /home/nonadminsftp/
ressemble à ceci:
$ ls -al ~nonadminsftp
total 24
drwxr-xr-x 3 root root 4096 Oct 25 00:52 .
drwxr-xr-x 5 root root 4096 Oct 24 22:29 ..
-rw-r--r-- 1 nonadminsftp sftpaccess 220 Sep 1 2015 .bash_logout
-rw-r--r-- 1 nonadminsftp sftpaccess 3771 Sep 1 2015 .bashrc
drwxr-xr-x 3 nonadminsftp sftpaccess 4096 Oct 25 00:50 ftp
-rw-r--r-- 1 nonadminsftp sftpaccess 655 May 16 13:49 .profile
Leurs entrées respectives dans /etc/passwd
sont les suivantes:
nonrootadmin:x:1000:1000::/home/nonrootadmin:/bin/bash
nonadminsftp:x:1002:1002::/home/nonadminsftp:/usr/sbin/nologin
Les modifications que j'ai apportées au fichier /etc/sshd/sshd_config
sont les suivantes:
PermitRootLogin no
#PasswordAuthentication no
AllowUsers nonrootadmin nonadminsftp
Subsystem sftp internal-sftp
Match group sftpaccess
#ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
#ForceCommand internal-sftp
La solution que j'ai vue propose de ne pas commenter trois de ces lignes, mais je découvre que:
PasswordAuthentication no
empêche l'utilisateur nonadminsftp de se connecter avec un mot de passe:
$ sftp [email protected]
Permission denied (publickey).
Couldn't read packet: Connection reset by peer
ChrootDirectory %h
empêche l'utilisateur de ne pas se connecter du tout:
$ ssh [email protected]
packet_write_wait: Connection to 12.34.56.78 port 22: Broken pipe`
ForceCommand internal-sftp
empêche le non-root administrateur d'accéder à SSH:
$ ssh [email protected]
This service allows sftp connections only.
Connection to mydomain.com closed.`
Avec ces lignes commentées:
MAIS:
chroot
ed dans le répertoire /home/nonadminsftp
Qu'est-ce qui me manque?
Merci d'avance
Grâce à @muru, la configuration suivante fonctionne maintenant:
PermitRootLogin no
PasswordAuthentication no
AllowUsers nonrootadmin nonadminsftp
Subsystem sftp internal-sftp
Match group sftpaccess
# The following directives only apply to users in sftpaccess
PasswordAuthentication yes
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
J'avais précédemment ajouté nonrootadmin
au groupe sftpaccess
. Après avoir supprimé cet utilisateur du groupe ...
$ Sudo gpasswd -d nonrootadmin sftpaccess
$ getent group ftpaccess
ftpaccess:x:1002:nonadminsftp
... nonrootadmin
peut maintenant utiliser SSH.