Setup SFTP in Linux

Steps to Configure SFTP in Linux

  • Configure env vars for Setup

export SFTP_HOME_PATH=/srv/sftpuser
export SFTP_USER_GROUP=sftpgroup
  • Update the apt

sudo apt-get update
sudo apt-get upgrade -y
  • Install OpenSSH

sudo apt install ssh -y
  • Configure sftp

sudo nano /etc/ssh/sshd_config
  • Add the below content at the end of the file (replace vars)

Match Group <SFTP_USER_GROUP>
ChrootDirectory <SFTP_HOME_PATH>
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
PermitRootLogin no
  • Add new group

sudo groupadd $SFTP_USER_GROUP
  • Add user to group and restrict interactive login

sudo useradd -G $SFTP_USER_GROUP -d $SFTP_HOME_PATH -s /sbin/nologin sftpuser
  • Set password for sftp user

sudo passwd sftpuser
  • Create directory for sftpuser

sudo mkdir -p $SFTP_HOME_PATH
  • Set root as own for sftpuser directory

sudo chown root $SFTP_HOME_PATH
  • Allow group read and execution perms

sudo chmod g+rx $SFTP_HOME_PATH
  • Create Sub Directory for storing data of sftp

sudo mkdir -p $SFTP_HOME_PATH/data
  • set sftpuser as owner for Data Directory

sudo chown sftpuser:sftpuser $SFTP_HOME_PATH/data
  • Connect to sftp

sftp sftpuser@<IP_ADDRESS>

Enter the password you've configured in above steps

Handling Downtime

  • Logging the Failures in SQL Database.

  • Add a timer trigger to retry these failed cases and notify if not worked.

  • Retry for 5 times, and then ignore by logging error.

Last updated