To add a SFTP-only user, you'll need to make sure your SSH config settings are correct, add a new user/group and set permissions for your new user. For step-by-step directions, see below. Omit sudo
if you're logged in as root.
-
Edit
/etc/ssh/sshd_config
and make sure to add the following at the end of the file:Match group filetransfer ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
-
Restart OpenSSH:
sudo /etc/init.d/ssh restart
-
Add new group for SFTP-only users:
sudo addgroup filetransfer
-
Add new user (make sure to switch out username in the following steps to your specified username):
sudo adduser username
-
Add user to new group and set permissions:
sudo usermod -G filetransfer username sudo chown root:root /home/username sudo chmod 755 /home/username
-
Create directories for user and set final permissions:
cd /home/username sudo mkdir folder_1 folder_2 sudo chown username:username *
-
Setup a symbolic link to make the user's folder available to the public (
/var/www/...
path will be dependent on your environment):sudo ln -s /home/username/USER_DIRECTORY /var/www/devpress.cbai.us/wordpress/PUBLIC_DIRECTORY/
If you need to view the public directory index, you may have to add a .htaccess file in your PUBLIC_DIRECTORY with: Options +Indexes
-
Use Cyberduck or another SFTP client to connect. Go have a beer.
Hi there, I originally used this same guide and added two user accounts that worked perfectly well until fairly recently. One of my accounts I can login fine into FileZilla, but the other one or any subsequent accounts I create, will not log in. I get 'Authentication failed' and Critical error: could not connect to server.
Please advise