Any Linux server distribution is a really highly effective server that performs above and past what what you are promoting may want. No matter job you throw on the server, it will likely be prepared. And, if it isn’t prepared out of the field, you may make it so.
When you aren’t positive about SFTP, it’s the FTP service constructed into Safe Shell (SSH), which permits customers to securely push and pull recordsdata to and from the server, utilizing SSH.
I’m going to stroll you thru the method of establishing an SFTP server. I’ll reveal by making a single person that’s restricted to solely SFTP logins. As soon as you understand how to do that, you may create as many customers as you want. This course of will work on any Linux distribution.
Let’s make it work.
SEE: Troubleshooting Linux: An Admin’s Information (TechRepublic Premium)
What you’ll want
You’ll want entry to an account with admin rights. When you’ve procured that entry, it’s time to make this work.
SFTP Listing
The very first thing we should do is create a listing that may home our FTP knowledge. Open up a terminal window, su to the foundation person (sort su after which, when prompted, sort the foundation person password), after which challenge the next two instructions:
mkdir -p /knowledge
chmod 701 /knowledge
SEE: Easy methods to Add an SSH Fingerprint to Your known_hosts File in Linux (TechRepublic)
Create the SFTP group and person
Now we’re going to create a particular group for SFTP customers. That is carried out with the next command:
groupadd sftp_users
Now we’re going to create a particular person that doesn’t have common login privileges, however does belong to our newly created sftp_users group. What you name that person is as much as you. The command for that is:
useradd -g sftp_users -d /add -s /sbin/nologin USERNAME
The place USERNAME is the identify of the person.
Subsequent, give the brand new person a password. This password would be the password the brand new customers use to log in with the sftp command. To arrange the password, challenge the command:
passwd USERNAME
The place USERNAME is the identify of the person created above.
SEE: Easy methods to Begin, Cease, and Restart Providers in Linux (TechRepublic)
Create the brand new person SFTP listing
Now we’re going to create an add listing, particular to the brand new person, after which give the listing the right permissions. That is dealt with with the next instructions:
mkdir -p /knowledge/USERNAME/add
chown -R root:sftp_users /knowledge/USERNAME
chown -R USERNAME:sftp_users /knowledge/USERNAME/add
The place USERNAME is the identify of the brand new person you created above.
Configure sshd
Open up the SSH daemon configuration file with the command:
nano /and many others/ssh/sshd_config
On the backside of that file, add the next:
Match Group sftp_users
ChrootDirectory /knowledge/%u
ForceCommand internal-sftp
Save and shut that file. Restart SSH with the command:
systemctl restart sshd
SEE: 5 Greatest Linux CentOS Substitute Choices & Options (TechRepublic)
Logging in
You’re all set to log in. From one other machine in your community that has SSH put in, open up a terminal window and challenge the command:
sftp USERNAME@SERVER_IP
The place USERNAME is the identify of our new person and SERVER_IP is the IP deal with of our SFTP server. You can be prompted for USERNAME’s password. When you efficiently authenticate, you’ll be greeted with the sftp immediate. Kind pwd to examine the working path and it is best to see /add as depicted within the picture under.
A easy resolution
That’s all there’s to establishing an SFTP server on Linux. For any firm seeking to provide employees and shoppers a easy, safe technique of importing and downloading recordsdata, this can be a not solely an excellent resolution but additionally very funds pleasant one. Get your SFTP server up and working with zero value and nil headache.
This text was initially printed in September 2019. It was up to date by Antony Peyton in January 2025.