ubuntu 下搭建sftp服务器

1.首先安装ssh服务

sudo apt-get install openssh-server

2.为sftp创建管理组

sudo addgroup sftp-users

3.创建SFTP用户,并配置相应权限。这里第二行的意思是将alice从所有其他用户组中移除并加入到sftp-users组,并且关闭其Shell访问。如果想深入了解usermod命令,可以使用以下”man usermod”命令查看帮助文档。

sudo adduser alice
sudo usermod -G sftp-users -s /bin/false alice

那天我误将自己的账号从自己组里移除了,连sudo权限都没有了,后来用usermod -a -G caigan2015 caigan2015恢复自己组,用usermod -a -G sudo caigan2015恢复sudo权限

4.创建SSH用户组,并把管理员加入到该组(注意usermod中的-a参数的意思是不从其他用户组用移除)。

sudo addgroup ssh-users
sudo usermod -a -G ssh-users admin

【注:为用户添加管理员权限命令为,sudo adduser admin sudo】

5.创建监狱目录。其实这是为了安全起见来创建的目录。该“监狱”目录拥有以下权限:

1.超级管理root拥有所有权限
2.其他任何用户都不能拥有写入权限。

所以,为了让sftp能上传文件,必须在“监狱”根目录下再创建一个普通用户能够写入的共享文件目录。为了便于管理员通过SFTP管理上传的文件,我把这个共享文件目录配置为:由root所有,允许sftp-users读写。这样,管理员和SFTP用户组成员就都能读写这个目录了。

sudo mkdir /home/sftp_root/shared -p
sudo chown admin:sftp-users /home/sftp_root/shared
sudo chmod 770 /home/sftp_root/shared

*当然,目录具体位置由自己设定,比如我是一个网站管理员 我就设置为
/var/www/html/*。

6.修改SSH配置文件。

sudo nano /etc/ssh/sshd_config

在sshd_config文件的最后,添加以下内容:

AllowGroups ssh-users sftp-users
Match Group sftp-users
ChrootDirectory /home/sftp_root
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp

这些内容的意思是:
只允许ssh-uers及sftp-users通过SSH访问系统;
针对sftp-users用户,额外增加一些设置:将“/home/sftp_root”设置为该组用户的系统根目录(因此它们将不能访问该目录之外的其他系统文件);禁止TCP Forwarding和X11 Forwarding;强制该组用户仅仅使用SFTP。
如果需要进一步了解细节,可以使用“man sshd_config”命令。这样设置之后,SSH用户组可以访问SSH,并且不受其他限制;而SFTP用户组仅能使用SFTP进行访问,而且被关进监狱目录。

7.重启系统以便使新配置生效。

sudo reboot now

8.察看服务是否启动。

rivsidn@rivsidn-Dell:~$ service --status-all

 [ + ]  ssh

转载于:https://my.oschina.net/u/3498763/blog/1809151

在Linux服务器搭建SFTP服务器通常需要使用OpenSSH(Secure File Transfer Protocol)服务。以下是简单的步骤: 1. 安装SSH服务器:首先,你需要确保SSH服务已经安装并且运行。如果是基于Debian或Ubuntu的系统,可以使用`apt-get install openssh-server`命令;对于CentOS或RHEL,则用`yum install openssh-server`。 2. 启动并设置服务:安装完成后,启动SSH服务并将其添加到开机自启项: - Debian/Ubuntu: `sudo systemctl start ssh && sudo systemctl enable ssh` - CentOS/RHEL: `sudo systemctl start sshd && sudo systemctl enable sshd` 3. 配置防火墙:允许外部IP访问SFTP,如果是iptables,可以用`sudo ufw allow ssh`;如果是firewalld,用`sudo firewall-cmd --permanent --add-service=ssh`,然后`sudo firewall-cmd --reload`. 4. 创建用户并分配权限:使用`sudo useradd -m sftpuser`创建一个新的SFTP用户,然后编辑`/etc/ssh/sshd_config`文件,将`sftp`用户加入到`Match User`块中,允许他们仅通过SFTP登录: ``` Match User sftpuser ChrootDirectory /home/sftpuser ForceCommand internal-sftp ``` 5. 设置权限:给新用户的主目录设置适当的权限,例如`sudo chown sftpuser:sftpuser /home/sftpuser` 和 `sudo chmod 700 /home/sftpuser`。 6. 重启SSH服务:确保配置更改生效,运行`sudo systemctl restart sshd`。 现在你的Linux服务器应该已经搭建好了一个基本的SFTP服务器,可以通过`sftp sftpuser@your_server_ip`连接到它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值