http://blog.srmklive.com/2013/04/24/how-to-setup-sftp-server-ftp-over-ssh-in-ubuntu/
In my previous post, i discussed about how to install & configure FTP Server on Ubuntu. In this post, i will discuss about how to setup SFTP server in Ubuntu. First you need to install openssh-server, which can be done using command:
1 |
sudo apt-get install openssh-server ssh |
You can use the following commands for ssh:
1 |
sudo service ssh start # Starts SSH Servier |
2 |
sudo service ssh restart # Restarts SSH Server |
3 |
sudo service ssh stop # Stops SSH Server |
4 |
sudo service ssh status # Gives a short description of the status of the SSH server |
First create a backup of the /etc/ssh/sshd_config file and name it as/etc/ssh/sshd_config.bak. When done, open the /etc/ssh/sshd_config file:
1 |
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak |
2 |
sudo vi /etc/ssh/sshd_config |
Now edit the file /etc/ssh/sshd_config and add/edit the following lines:
#Subsystem sftp /usr/lib/openssh/sftp-server |
2 |
Subsystem sftp internal-sftp -f AUTH -1 VERBOSE |
4 |
#Uncomment this line if already commented |
7 |
AllowGroups sftpusers sftp root |
13 |
ForceCommand internal-sftp |
这里如果你想加入其他的用户test,并将它的目录限定在/home/test目录,需要加入如下的内容:
执行如下命令:sudo usermod -a -G sftpusers test
再sshd_config中加入如下内容:
Match user test
ChrootDirectory /home/test
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
为了不让test账户登录,可以设置/etc/passwd中的test账户为nologin。
Now lets create the relevant users & groups. First the create user group sftpusers using command:
1 |
sudo groupadd sftpusers |
Now create a user suppose sftpuser. The commands listed below will create the user, add it to the sftpusers, and update its password
2 |
sudo usermod -a -G sftpusers sftpuser |
Now proceed with modifying the permissions of the users home directory to allow for chrooting:
1 |
sudo chown root:sftpusers /home/sftpuser |
2 |
sudo chmod 750 /home/sftpuser |
Create a directory in which sftpuser
is free to put any files in it:
1 |
sudo mkdir /home/sftpuser/ public |
2 |
sudo chown sftpuser:sftpusers /home/sftpuser/ public |
3 |
sudo chmod 777 /home/sftpuser/ public |