当ssh连接linux服务器的时候传送文件很麻烦,但是用sftp就方便多了,系统有的是默认带有sftp服务的,但是有时候会存在问题导致不能使用,这时需要重新注册服务,以下步骤仅供参考。
一、创建sftp组
创建完成之后使用 cat /etc/group 命令组的信息
groupadd sftp
创建一个sftp用户mysftp并加入到创建的sftp组中,同时修改mysftp用户的密码
useradd -g sftp -s /bin/false mysftp
passwd mysftp
二、新建/data/sftp/mysftp目录,并将它指定为mysftp组用户的home目录
mkdir -p /data/sftp/mysftp
usermod -d /data/sftp/mysftp mysftp
三、编辑配置文件/etc/ssh/sshd_config
vi /etc/ssh/sshd_config
将如下这行用#符号注释掉
# Subsystem sftp /usr/libexec/openssh/sftp-server
并在文件最后面添加如下几行内容然后保存
Subsystem sftp internal-sftp
四、设置Chroot目录权限
chown root:sftp /data/sftp/mysftp
chmod 755 /data/sftp/mys
五、新建一个目录供stp用户mysftp上传文件,这个目录所有者为mysftp所有组为sftp,所有者有写入权限所有组无写入权限
mkdir /data/sftp/mysftp/upload
chown mysftp:sftp /data/sftp/mysftp/upload
chmod 755 /data/sftp/mysftp/upload
六、关闭selinux并重启sshd服务,然后测试
systemctl restart sshd
七、最后,登录
我使用的是FileZilla FTP客户端测试的登录