sftp服务器搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sftp服务器搭建相关的知识,希望对你有一定的参考价值。


 注:本文搭建sftp的系统为CentOS 7 以上

sftp服务器两种搭建方式

  1、直接在系统上新建一个用户即可,此种方式最简单,但最不安全,用户sftp登陆之后可以随意切换目录,切用户可以ssh登陆到系统,很不安全,生产环境中没这么干的,故不详细介绍了。

  • 首先新建sftp登陆用户

useradd stp-u

echo sftp-u | passwd --stdin sftp-u

  • 配置/etc/ssh/sshd_config

注释掉

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

添加如下

Subsystem sftp internal-sftp

Match User sftp-u

ChrootDirectory /opt/upload

ForceCommand internal-sftp

  AllowTcpForwarding no

  X11Forwarding no

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755

但如目录权限由于实际环境的原因不能修改权限的话,也可以通过软连接实现,但最底层的目录的属主任然为root,权限最大任然是755

修改目录权限

chown root.sftp-u test/

重启服务

service sshd reload

service sshd restart

登陆

sftp -P 22 ​​sftp-u@xxx.xxx.xxx.​​xxx

显示本地目录

sftp> lls

1.json 2.json 3.json ls.txt put.sh

显示远程目录

stp> ls

1.json

上传

从本地上传文件到远程,本地不指定目录默认当前目录,远程不指定目录就是上传到根目录下

sftp> put 1.json

Uploading 1.json to /1.json

remote open("/1.json"): Permission denied

提示操作远程权限失败,因为这是往远程写,所以检查远程操作的目录是否有写权限,发现sftp-u用户对远程默认目录没有写权限

于是给sftp-u用户指定的根目录加上写权限,service sshd restart 发现还是不能上传。

发现需要在根目录下新建一个子目录,并且给上sftp-u用户写权限,才可以上传

chown root.sftp-u /root/upload/

mkdir /root/upload/file

chown sftp-u:sftp-u /root/upload/file

chmod 775 /root/upload/file

下载

sftp> get sftp-s.txt .

Fetching /file/sftp-s.txt to ./sftp-s.txt

总结

#file server

useradd sftp-u

echo sftp-u | passwd --stdin sftp-u

mkdir -p /root/upload/

chown root.sftp-u /root/upload/

mkdir /root/upload/file

chown sftp-u:sftp-u /root/upload/file

chmod 775 /root/upload/file

sed -i s/Subsystem\\tsftp\\t\\/usr\\/libexec\\/openssh\\/sftp-server/#Subsystem\\tsftp\\t\\/usr\\/libexec\\/openssh\\/sftp-server/g /etc/ssh/sshd_config

echo -e Subsystem sftp internal-sftp

Match User sftp-u

\\tChrootDirectory /root/upload

\\tForceCommand internal-sftp

\\tAllowTcpForwarding no

\\tX11Forwarding no >> /etc/ssh/sshd_config

 

以上是关于sftp服务器搭建的主要内容,如果未能解决你的问题,请参考以下文章

Centos7安装搭建FTP服务器

Centos7配置SFTP服务

Linux下sftp配置之密钥方式登录

sftp服务器搭建(ubuntu)

sftp服务搭建流程

sftp搭建配置