Je suis en train de définir Chroot pour SFTP et j'ai utilisé une combinaison de tutoriels ( Source1 , Source2 ) et avez fini par la configuration suivante dans /etc/ssh/sshd_config
:
Match Group sftpusers
ForceCommand internal-sftp
ChrootDirectory /var/sftp/
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Le dossier de base SFTP est /var/sftp
Et l'utilisateur a été créé comme suit:
groupadd sftpusers
adduser myuser01
mkdir -p /var/sftp/myuser01
usermod -a -G sftpusers myuser01
chown myuser01:myuser01 /var/sftp/myuser01
systemctl restart sshd
Maintenant, quand j'essaie un login, je me retrouve dans le /var/sftp
Dossier, qui démontre la connexion fonctionne.
Depuis que je veux que les utilisateurs se retrouvent dans le /var/sftp/<userid>
Dossier, j'essaie de définir la configuration suivante est sshd_config
, sous le Match Group
ligne :
ChrootDirectory /var/sftp/%u
Quand je fais que je reçois une erreur client_loop: send disconnect: Broken pipe
sur une tentative de connexion. Selon la page d'homme pour ssh_config
La variable doit être acceptée, par:
ChrootDirectory accepte les jetons %%,% h et% u.
Des idées?
Env:
chown myuser01:myuser01 /var/sftp/myuser01
...
ChrootDirectory /var/sftp/%u
La directive OpenSSSSSSSH Server Server's chrootdirectory nécessite que le répertoire chroot et ses répertoires parents soient appartenant à racine:
chrootdirectory
[.____] Spécifie le chemin d'accès d'un répertoire à chroot (2) à après l'authentification. au démarrage de session SSHD (8) vérifie que tous les composants du chemin nom sont des annuaires appartenant à des racines qui ne sont pas inscriptibles par un autre utilisateur ou groupe. Après que le chroot, sshd (8) modifie le répertoire de travail pour le répertoire de base de l'utilisateur.
Je n'ai pas testé cela, mais je pense que si vous créez un /etc/passwd
Fichier dans l'environnement Chroot, contenant une ligne pour l'utilisateur en question, puis sshd honorera le champ Répertoire de domicile de cette ligne en tant que répertoire personnel de l'utilisateur dans l'environnement chroot. Si cela fonctionne réellement, vous pourriez utiliser cela pour que la session de l'utilisateur commence par son répertoire de travail quelque part autre que le répertoire chroot.