SFTP (Secure File Transfer Protocol) is a secure alternative to FTP, allowing for encrypted file transfers over SSH. It is the preferred method for transferring files securely between machines.
In Linux, setting up an SFTP server is simple, as it's often built into the default SSH server package. In this guide, we'll walk you through the process of setting up and configuring an SFTP server on Linux.
Most Linux distributions come with the OpenSSH package pre-installed. If it's not, you can easily install it:
For Debian/Ubuntu:
sudo apt update
sudo apt install openssh-server
For CentOS/Red Hat:
sudo yum install openssh-server
For Fedora:
sudo dnf install openssh-server
Configuring SFTP
You don't need to install a separate package for SFTP since it's integrated into the SSH server. However, you might want to configure specific directories for SFTP or restrict users.
To do this, edit the SSH configuration:
sudo nano /etc/ssh/sshd_config
To create an SFTP-only user group and set up a directory for them:
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
PasswordAuthentication yes
PermitRootLogin no
Make sure to create the `/sftp` directory and any user-specific directories within it, adjusting permissions accordingly.
To create an SFTP-only user:
sudo useradd -m -G sftpusers sftpuser
sudo passwd sftpuser
sudo mkdir /sftp/sftpuser
sudo chown sftpuser:sftpusers /sftp/sftpuser
Replace `sftpuser` with your desired username.
After making your configurations, restart the SSH server:
sudo systemctl restart sshd
Connect to your SFTP server using a client or the command line
sftp sftpuser@your_server
If everything is configured correctly, you should be able to log in and transfer files securely.
Comments