SFTP guest ändra starting directory

Permalänk
Medlem

SFTP guest ändra starting directory

Har en användare guest på min Debian server som jag vill ska hamna i mappen /srv vid anslutning via SFTP genom FileZilla.

Hittade flera lösningar och fastnade för att ändra i /etc/ssh/sshd_config.

... # guest SFTP default directory Match User guest ForceCommand internal-sftp -d /srv

Detta löser att jag hamnar i /srv vid anslutning genom FileZilla. Dock så stänger putty ner sig så fort jag försöker logga in med guest efter jag skrivit in lösenordet. Tar jag bort ändringen i /etc/ssh/sshd_config så kan jag logga in som vanligt med guest genom putty.

Hur gör jag för att allt annat ska fungera som vanligt men att jag hamnar i /srv när jag ansluter genom FileZilla med guest?

Visa signatur

Citera för svar

MSI Z490 MAG TOMAHAWK | Intel Core i7 10700K | Corsair 64GB DDR4 3200MHz | Asus GeForce RTX 3060 Ti TUF Gaming OC | Samsung 970 EVO Plus 1TB | WD Black 6TB Desktop Drive | Corsair RM750X 750W | Fractal Design Define R6

Permalänk
Medlem

Vill du låsa användaren till en viss mapp eller bara ha en viss startmapp?

Jag tänker mig låsa användaren och då kan du använda chroot.
se här:https://wiki.archlinux.org/title/SFTP_chroot

Visa signatur

"Det här systemet fungerar urkasst." - operatör.
"Hur ska det fungera då?" - jag
"Gör så att det fungerar som jag vill." - operatör.
/facepalm

Permalänk
Medlem
Skrivet av Otur:

Vill du låsa användaren till en viss mapp eller bara ha en viss startmapp?

Jag tänker mig låsa användaren och då kan du använda chroot.
se här:https://wiki.archlinux.org/title/SFTP_chroot

Jag tänkte mer en startmapp. Behöver inte vara någon nerlåsning

Visa signatur

Citera för svar

MSI Z490 MAG TOMAHAWK | Intel Core i7 10700K | Corsair 64GB DDR4 3200MHz | Asus GeForce RTX 3060 Ti TUF Gaming OC | Samsung 970 EVO Plus 1TB | WD Black 6TB Desktop Drive | Corsair RM750X 750W | Fractal Design Define R6

Permalänk
Medlem

Hela /etc/ssh/sshd_config om det är av intresse

# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. #Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: #HostKey /etc/ssh/ssh_host_rsa_key #HostKey /etc/ssh/ssh_host_ecdsa_key #HostKey /etc/ssh/ssh_host_ed25519_key # Ciphers and keying #RekeyLimit default none # Logging #SyslogFacility AUTH #LogLevel INFO # Authentication: #LoginGraceTime 2m #PermitRootLogin prohibit-password #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 #PubkeyAuthentication yes # Expect .ssh/authorized_keys2 to be disregarded by default in future. #AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 #AuthorizedPrincipalsFile none #AuthorizedKeysCommand none #AuthorizedKeysCommandUser nobody # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts #HostbasedAuthentication no # Change to yes if you don't trust ~/.ssh/known_hosts for # HostbasedAuthentication #IgnoreUserKnownHosts no # Don't read the user's ~/.rhosts and ~/.shosts files #IgnoreRhosts yes # To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes #PermitEmptyPasswords no # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) ChallengeResponseAuthentication no # Kerberos options #KerberosAuthentication no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes #KerberosGetAFSToken no # GSSAPI options #GSSAPIAuthentication no #GSSAPICleanupCredentials yes #GSSAPIStrictAcceptorCheck yes #GSSAPIKeyExchange no # Set this to 'yes' to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication and # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication via ChallengeResponseAuthentication may bypass # the setting of "PermitRootLogin without-password". # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication # and ChallengeResponseAuthentication to 'no'. UsePAM yes #AllowAgentForwarding yes #AllowTcpForwarding yes #GatewayPorts no X11Forwarding yes #X11DisplayOffset 10 #X11UseLocalhost yes #PermitTTY yes PrintMotd no #PrintLastLog yes #TCPKeepAlive yes #PermitUserEnvironment no #Compression delayed #ClientAliveInterval 0 #ClientAliveCountMax 3 #UseDNS no #PidFile /var/run/sshd.pid #MaxStartups 10:30:100 #PermitTunnel no #ChrootDirectory none #VersionAddendum none # no default banner path #Banner none # Allow client to pass locale environment variables AcceptEnv LANG LC_* # override default of no subsystems Subsystem sftp /usr/lib/openssh/sftp-server # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server # guest SFTP default directory Match User guest ForceCommand internal-sftp -d /srv

Dold text
Visa signatur

Citera för svar

MSI Z490 MAG TOMAHAWK | Intel Core i7 10700K | Corsair 64GB DDR4 3200MHz | Asus GeForce RTX 3060 Ti TUF Gaming OC | Samsung 970 EVO Plus 1TB | WD Black 6TB Desktop Drive | Corsair RM750X 750W | Fractal Design Define R6

Permalänk
Medlem
Skrivet av Dew87:

Jag tänkte mer en startmapp. Behöver inte vara någon nerlåsning

har du provat med "subsystem sftp-server -d /srv/" istället för forcecommand? Jag har inte använt det själv på det sättet, men det låter på manualen som att man kan göra så.
https://man.openbsd.org/sshd_config.5#Subsystem
https://man.openbsd.org/sftp-server.8

Annars så kan du ju flytta användarens hem-mapp.

Visa signatur

"Det här systemet fungerar urkasst." - operatör.
"Hur ska det fungera då?" - jag
"Gör så att det fungerar som jag vill." - operatör.
/facepalm

Permalänk
Medlem

Om jag tolkar dig rätt så vill du både kunna köra ssh och sftp med samma användare.
Det plus att du vill tvinga sftp till en specifik mapp?

Som du har gjort nu så har du sagt åt sshd att alltid tvinga en sftp anslutning när guest loggar på. Det är därför putty stänger ned direkt.
subsystem vägen som otur föreslår är rätt väg att angripa problemet (jag har ingen konfig framför mig men har gjort liknande tidigare)

Visa signatur

Arbetsdator: HFX Mini. Ryzen 3600, GTX1650. Skärmar: Dell 2415

Permalänk
Medlem
Skrivet av Otur:

Vill du låsa användaren till en viss mapp eller bara ha en viss startmapp?

Jag tänker mig låsa användaren och då kan du använda chroot.
se här:https://wiki.archlinux.org/title/SFTP_chroot

Stort tack @Otur och @mats42

Jag valde att låsa ner användaren guest till /srv med chroot enligt instruktionerna från din länk. Fungerar bra förutom att putty fortfarande stängs ner om man försöker logga in med guest (hade hellre sett ett "Access denied" meddelande). Var typ som jag ville ha det från början men jag trodde det först var lättare att implementera som jag skrev i första inlägget.

/etc/ssh/sshd_config

... # SFTP user guest Match User guest ChrootDirectory /srv ForceCommand internal-sftp

Visa signatur

Citera för svar

MSI Z490 MAG TOMAHAWK | Intel Core i7 10700K | Corsair 64GB DDR4 3200MHz | Asus GeForce RTX 3060 Ti TUF Gaming OC | Samsung 970 EVO Plus 1TB | WD Black 6TB Desktop Drive | Corsair RM750X 750W | Fractal Design Define R6