Wanneer ek aan 'n SFTP-bediener koppel, het ek geen probleme om in die /home-gids te chroot en toegang te verkry tot die gids wat ek wil hê (FileFolder). Maar as ek probeer om dit te konfigureer sodat dit reguit in die gids kom, verwerp dit die verbinding.

Wanneer ek die volgende reël ChrootDirectory /homena verander, word ChrootDirectory /home/FileFoldermy verbinding verwerp wanneer ek as 'n gasgebruiker verbind. Toestemmings vir die gasgebruiker is rxomdat ek wil hê die gebruiker moet slegs lêers kan aflaai.

Ek het probeer om logging by my konfigurasie te voeg om miskien 'n begrip te hê van wat gebeur:

SyslogFacility AUTH
LogLevel INFO

Maar die lêer /var/log/auth.logbestaan ​​nie (ek kan my misgis en dit teken aan by 'n ander lêer). Ek het ook probeer gebruik journalctl _COMM=sshd, maar dit gee nie vir my gedetailleerde inligting nie, net gebruikers wat koppel en hul IP's.

My sshd_config:

Port 22

PubkeyAuthentication yes

AuthorizedKeysFile  .ssh/authorized_keys

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM yes

Subsystem   sftp    /usr/lib/ssh/sftp-server

Match Address 192.168.8.*
    PasswordAuthentication yes

Match User guest
    ForceCommand internal-sftp
    ChrootDirectory /home

Ek het die oplossing van hier af probeer, maar dit werk nie.

NS Ek koppel vanaf 192.168.8.* IP-adres so dit is nie 'n pubkey-verifikasiefout nie.

Oplossing: ek moes die eienaar van FileFolder verander na root. Aanvanklik was dit net 'n gebruiker met root-regte.

answer

Ek vermoed toestemmingskwessie. Hoekom chroot to /home werk, is dat dit deur root besit word . Chroot na /home/FileFolder werk nie omdat dit nie deur wortel besit word nie en moet slegs met wortel geskryf kan word. Al die elemente in die chroot -pad moet dieselfde voorreg hê. Gaan "/var/log/secure" na vir loginligting. Dit sal die rede waarom chroot misluk, lys.