怎么搭建一个sftp服务

2020-01-06  本文已影响0人  我是陈小白

sftp命令是一款交互式的文件传输程序,命令的运行和使用方式与ftp命令相似,

但是,sftp命令对传输的所有信息使用ssh加密,它还支持公钥认证和压缩等功能。

工作中我们可能会需要搭建一个sftp服务,来进行文件的上传和下载。本文将讲解一下在linux系统服务器上sftp服务的搭建过程。

1.创建一个用户组sftp


#创建sftp用户组

groupadd sftp

#查看用户组信息

cat /etc/group

2.创建一个用户tester,并将其加入sftp用户组中,同时修改用户密码


useradd -g sftp -s /bin/false tester

#修改新建用户密码

passwd tester

3.新建用户主目录,并设置权限


mkdir -p /data/sftp/tester

#指定为用户主目录

usermod -d /data/sftp/tester tester

chown root:sftp /data/sftp/tester #文件夹所有者必须为root,用户组可以不是root

chmod 755 /data/sftp/tester #权限不能超过755,否则会导致登录报错,可以是755

4.新建用户文件上传目录,并设置权限


mkdir /data/sftp/tester/upload

chown tester:sftp /data/sftp/tester/upload

chmod 755 /data/sftp/tester/upload

5.编辑修改配置文件/etc/ssh/sshd_config

打开配置文件/etc/ssh/sshd_config,将如下内容添加至配置文件末尾


Subsystem sftp internal-sftp

Match Group sftp

#设置sftp登录之后的目录

ChrootDirectory /data/sftp/tester/%u

ForceCommand internal-sftp

AllowTcpForwarding no

X11Forwarding no

注意。一般原配置文件中已经存在Subsystem配置,只需将其注释掉即可。如下


# Subsystem sftp /usr/libexec/openssh/sftp-server

6.重启服务


setenforce 0

service sshd restart

7.验证

登录另一台服务器,执行


#此处测试IP

sftp tester@127.0.0.1

执行命令后,按照提示输入密码,登陆成功。ok,大功告成,可以愉快的上传和下载文件了。
补充一下:
今天服务器报sftp文件上传失败,经查为登录失败。原来sftp用户密码默认有效期为3个月,密码失效了。。。
马上修改:

#将密码设为永久有效
chage -M 99999 tester

再试一下,登陆成功。

上一篇 下一篇

猜你喜欢

热点阅读