Sper că nu este un dup, dar nu pot găsi un răspuns la acesta... Am găsit acesta, care la suprafață pare să fie același, dar este foarte vechi și singurul răspuns din el nu răspunde la întrebarea reală: Setați utilizatorii ca fiind crootate pentru sftp, dar permiteți utilizatorului să se autentifice în SSH
Am configurat cu succes un mediu ChrootDirectory de lucru prin sftp pentru utilizatorii din grupul „sftp_users”. Funcționează bine, toate permanentele adecvate și altele, restricționând accesul doar la sftp și pot rw în subdirectoarele lor din interiorul ChrootDirectory. Acest lucru este grozav pentru utilizatorii care nu sunt privilegiați, interzicând accesul ssh și permițând doar rw în interiorul subfolderelor lor din ChrootDirectory.
Aș dori să am puțin mai mulți utilizatori privilegiați, care încă pot folosi ssh în mod normal, totuși, atunci când se conectează prin sftp, vor avea atunci mediul ChrootDirectory. Aceasta este mai puțin o problemă de securitate, deoarece sunt considerați privilegiați și obvi pot naviga prin sistemul de fișiere în ssh în limitele permisiunilor lor normale de utilizator. Problema este că nu văd o modalitate de a le croota atunci când se conectează sub sftp fără a împiedica autentificarea ssh. Acest lucru este mai mult pentru standardizare și comoditate decât orice altceva, așa că atunci când fac sftp, ajung doar la locația lor Chrooted ca utilizatorii doar sftp.
Am crezut că acest lucru ar funcționa dacă le-aș lăsa shell-ul ca implicit (nu /bin/false sau nologin). Din păcate, atunci când sunt în grupul sftp_only, nu le va permite deloc să introducă ssh, doar sftp. Există o soluție pentru aceasta, în afară de a avea două conturi separate, unul adăugat la „sftp_users” și unul care nu este în acel grup? Până acum, tot ce pot găsi este documentație privind restricționarea sftp Chroot și, simultan, interzicerea ssh dacă sunt în acel grup.
Exemplu de utilizator este „test”. „test” se află în grupul sftp_users și, prin urmare, se poate autentifica prin sftp și poate fi conectat la folderul specificat („/sftp/test”) și poate citi sau scrie în folderul său principal montat în legătură la „/sftp/test/home”. . Toate acestea funcționează. Dar chiar dacă shell-ul său este încă setat în /etc/passwd la /bin/bash, „test” nu se poate autentifica prin ssh dacă este adăugat la grupul sftp_users. Eliminați calitatea de membru în acel grup și el poate face ambele, dar apoi nu Chrootat sub sftp.
Utilizatorii care nu fac parte din grupul „sftp_users” se pot autentifica în continuare prin ssh sau sftp, dar nu au Chrootate sub sftp.
Există o modalitate de a potrivi protocolul utilizat și/sau poate seta o potrivire suplimentară pentru un alt grup? Caut doar chroot-ul când se autentifică prin sftp. Non-chroot prin ssh este bine pentru acești utilizatori.
Următorul este sshd_config-ul meu:
Portul XXXX
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocolul 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin nr
StrictModes da
PubkeyAuthentication da
IgnoreRhosts da
Autentificare bazată pe gazdă nr
PermitEmptyPasswords nr
ChallengeResponseAuthentication nr
X11 Redirecționare da
X11DisplayOffset 10
PrintMotd da
PrintLastLog da
ClientAliveCountMax 10
ClientAliveInterval 3600
TCPKeepAlive nr
#Banner /etc/issue.net
AcceptEnv LANG LC_*
Subsistem sftp /usr/lib/openssh/sftp-server -u 0027
Folosește PAM da
Autentificare prin parolă da
Grupul de potriviri sftp_users
ChrootDirectory /sftp/%u
ForceCommand internal-sftp -u 0027
X11Redirecționare nr
AllowTcpForwarding nr
Autentificare prin parolă da