欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

sftp配置

程序员文章站 2022-06-01 10:26:16
...


sftp是Secure File Transfer Paotocol的缩写,安全文件传送协议,可以为传输文件提供一种安全的加密方法

SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口默认22)

ssh配置

1.查看ssh版本

openssh-server版本至少的师4.8p1,因为配置权限需要版本添加的新配置项ChrootDirectory来完成

[[email protected] ~]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

2.创建用户和组

[[email protected] ~]#groupadd sftp
[[email protected] ~]#useradd -g sftp -s /sbin/nologin sftp

3.目录授权

目录必须是****root权限可以是755或者750

chown root:sftp sftp
chmod 755 -R sftp

4.编辑配置文件

/etc/ssh/sshd_config

Subsystem sftp /usr/libexec/openssh/sftp-server #注释掉这行

注释掉这一行:#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp #限制root的ssh登录
Match User sftp_admin #限制的用户
ChrootDirectory /home/sftp #用户的根目录
目录权限设置上要遵循2点:(需要格外注意)

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

5.重启配置

service sshd restart

(每次修改配置文件后,如果是使用的FileZilla客户端来连接sftp,那FileZilla客户端也需要重启)

6.一些报错

=====================

FileZilla连接报错:
错误: Server unexpectedly closed network connection
错误: 无法连接到服务器
这个是,因为配置文件 /etc/sshd_config中
当前登录的帐号
ChrootDirectory 对应的文件夹 不是root用户 和root用户组
但是有遇到了个大问题,root账户,不能进行ssh登录了

https://askubuntu.com/questions/553446/ssh-on-but-unable-to-connect-says-only-sftp
测试了下,只要把配置文件里面的这一行注释掉,重启 ssh服务后 就好了
ForceCommand internal-sftp

============

遇到一个问题:创建的组,成员之间不能互相修改文件,每次都要手动改权限,太麻烦了,
用户创建文件夹的默认权限:通过umask值来设定

UMASK介绍: http://blog.51cto.com/yttitan/1568662

SFTP chroot后如何设置umask: http://blog.51cto.com/yexiang/1609204

修改配置文件 /etc/pam.d/sshd

添加 session optional pam_umask.so umask=0002

重启sshd服务

秘钥连接

ssh-****** -t rsa
ssh-copy-id [email protected] ##要远程的目标服务器IP和账户

把公钥id_rsa.pub
2)将公钥考到sftp服务所在机器的相对应用户目录下,并将其复制到~/.ssh/authorized_keys中
(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)

基于秘钥连接的坑:

服务器端的authorized_keys 的权限必须是600

客户端的id_rsa 权限也必须是600

sftp配置多级目录

# override default of no subsystems
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp
Match user youyuFtp,youyuRead,youyuAdmin,cmbc,ibp,yff
      ChrootDirectory /chroot/youyuFtp/data
      ForceCommand    internal-sftp

Match user ccba,yffccba
      ChrootDirectory /chroot/youyuFtp/ccba_data
      ForceCommand    internal-sftp

Match user bocomi,yffbocomi
      ChrootDirectory /chroot/youyuFtp/bocomi_data
      ForceCommand    internal-sftp


客户端保存私钥
服务端对应用户下的(authorized_keys 600)保存公钥


挂载
sshfs -p 5000 -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,umask=002,allow_other, \
              IdentityFile=/mnt/bocomi_id_rsa [email protected]:/ /mnt//mnt/bocomi
相关标签: 运维 运维