Centos7搭建sftp服务器
Centos7搭建sftp服务器groupadd sftpgroupuseradd -g sftpgroup -M -s /sbin/nologinmysftppasswdmysftpmkdir -p /data/sftp/mysftpusermod -d /data/sftp/mysftpmysftpchown root:sftpgroup /data/sftp/mysftpchmod 755
·
Centos7搭建sftp服务器
一、什么sftp服务器
- sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的一部份,是一种传输档案至 Blogger 伺服器的安全方式。本身没有守护进程,是包含在ssh中,端口也是22。
- sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务,不像ftp还需要额外的进行安装。
二、安装sftp服务器
# 创建用户组
groupadd sftpgroup
# 创建完成之后使用cat /etc/group命令组的信息
cat /etc/group
# 创建用户并且加入到这个用户组,并修改mysftp用户的密码
useradd -g sftpgroup -M -s /sbin/nologin mysftp
passwd mysftp
# 密码 Java_521
# 创建/data/sftp/mysftp目录,并将它指定为mysftp组用户的home目录
mkdir -p /data/sftp/mysftp
usermod -d /data/sftp/mysftp mysftp
# 设置Chroot目录权限
chown root:sftpgroup /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
# 新建一个目录供stp用户mysftp上传文件,这个目录所有者为mysftp所有组为sftp,所有者有写入权限所有组无写入权限
mkdir -p /data/sftp/mysftp/project
chown -R mysftp:sftpgroup /data/sftp/mysftp/project
chmod 755 /data/sftp/mysftp/project
chmod 755 设置用户的权限为
- 文件所有者可读可写可执行
- 与文件所有者同属一个用户组的其他用户可读可执行
- 其它用户组可读可执行
三、修改配置文件
vi /etc/ssh/sshd_config
将Subsystem sftp /usr/libexec/openssh/sftp-server 注释掉
在文件末尾添添加 加以下几行
Subsystem sftp internal-sftp
Match Group sftpgroup
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /data/sftp/mysftp
ForceCommand internal-sftp
四、测试sftp
重启sshd服务,然后测试 sftp 用户名@ip地址
systemctl restart sshd.service
# sftp本地登录
sftp mysftp@127.0.0.1
# 测试上传
put abc.txt
# 测试下载
get abc.txt /opt
问题:上传出现问题
sftp>put a.txt
Uploading a.txt to /a.txt
remote open(“/a.txt”): Permission denied
解决:chmod 777 /data/sftp/mysftp
注意
错误信息: com.jcraft.jsch.JSchException: session is down
错误位置: schUtil.createSftp()
错误原因: sftp服务器的目录权限必须是755(drwxr-xr-x)
,如果是777(drwxrwxrwx),则会报错。
访问图片正常,访问视频失败。
最终问题排查,公司网络问题,切换手机的热点,访问正常。
更多推荐
已为社区贡献2条内容
所有评论(0)