linux 安装sftp
前提安装sshd服务
1、创建一个新的用户组,用于管理SFTP用户。
groupadd useradd ftpuser
useradd -m -G ftpuser -s /bin/false ftpuser
passwd ftpuser# 为用户设置密码
-m选项表示创建用户的主目录,如果不存在则会自动创建。
-G ftpuser选项表示将新用户添加到ftpuser组中。
-s /bin/false选项表示指定用户的登录shell为/bin/false,这意味着该用户无法登录到系统。
最后,ftpuser是新创建的用户名。
2、创建ftp目录
mkdir /home/Net_share
chown root:ftpuser /home/Net_share
chmod 755 /home/Net_share
mkdir /home/Net_share/File_save
chown ftpuser:ftpuser /home/Net_share/File_save
chmod 755 /home/Net_share/File_save
-
首先建立Net_share目录,他的拥有者必须是root,并且其他用户不能拥有写入的权限(ChrootDirectory 这个选项要求的),即权限不能超过755(否则连不上);
-
很明显,这样,我们使用SFTP用户登录就只能进行下载操作,无法上传文件;
-
所以在Net_share目录下建一个用于上传和下载的目录,他的拥有者可以是SFTP用户,可以无限制操作该目录下的文件;
3、修改linux服务器的SFTP配置
编辑/etc/ssh/sshd_config文件,注释其中的Subsystem sftp /usr/libexec/openssh/sftp-server,然后新增配置如下:
# 我的SFTP配置
Subsystem sftp internal-sftp # SFTP子系统使用内置的SFTP服务器
Match Group ftpuser # 以下配置仅适用于属于该组的用户
ChrootDirectory /home/Net_share # 目录限制
ForceCommand internal-sftp # 强制用户使用内置的SFTP服务器进行会话,而不允许执行其他命令
AllowTcpForwarding no # 禁止TCP转发
X11Forwarding no # 禁止X11转发
4、检查配置是否正确
sshd -t
5、重启服务
重启SSH服务器:配置完成后,重新启动SSH服务器以使更改生效。
sudo service ssh restart # 或 systemctl restart sshd
6、winscp连接测试
本文来自博客园,作者:EJW,转载请注明原文链接:https://www.cnblogs.com/ejjw/p/18027514