web-dev-qa-db-fra.com

"Client_loop: Envoyer la déconnexion: tuyau cassé" pour l'utilisateur chroot SFTP, avec mot de passe correct?

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:

  • OS: Ubuntu 18.04.4 LTS
  • sshd: openssh_7.6p1 ubuntu-4ubuntu0.3, openssl 1.0.2e 7 déc. 2017
2
Andre M
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.

2
Kenster