利用CentOS自带SSH服务搭建SFTP服务器

发布于:2021-06-14 00:30:56

传统的FTP数据不够安全,所以服务器上一般采用SFTP的方式对数据进行加密。如果服务器上已经开通了SSH服务,我们就可以直接利用SSH来开通SFTP服务,无需再另外安装软件。


?


一,新建系统账号


?


1.1 新建账号分组


Groupadd sftp


?


1.2 新建账号paul


useradd -s /sbin/nologin -g sftp -d /ZServer/demo? ?paul


passwd paul??????? //设置账号的密码


?


说明:


-s 账号登陆的模式,/sbin/nologin表示此账号只能FTP登陆,不能系统访问


-g sftp: 账号属于sftp分组


-d :设置账号的根目录


?


【目录权限的要求】


??? 如果要想paul可以SFTP账号登陆并成功访问/ZServer/demo目录,需要满足以下苛刻的条件。否则无法登录,给出的错误提示也让人摸不着头脑,无从查起。我在这上面浪费了很多时间。


???


?? 账号的根目录需要完全属于账号本身。


?? 账号根目录的上一级目录以及以上的全部目录都必须属于root账号,并且有且仅有root拥有写权限,也就是说权限最大设置为755。


?


1.3 设置账号根目录的权限


#cd /ZServer/


#chown -R paul:sftp? demo/


#chown -R 755 demo/


?


?


二,SSH版本:


首先要升级OpenSSH的版本。只有4.8p1及以*姹静胖С諧hroot。


查看SSH版本的指令是:


# ssh ?v


# OpenSSH_5.3p1, OpenSSL1.0.1e-fips 11 Feb 2013


usage: ssh[-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]


?????????? [-D [bind_address:]port] [-eescape_char] [-F configfile]


?????????? [-I pkcs11] [-i identity_file]


?????????? [-L[bind_address:]port:host:hostport]


?????????? [-l login_name] [-m mac_spec] [-Octl_cmd] [-o option] [-p port]


?????????? [-R[bind_address:]port:host:hostport] [-S ctl_path]


?????????? [-W host:port] [-wlocal_tun[:remote_tun]]


????? ?????[user@]hostname [command]


?


三,修改SSH配置文件


SSH版本满足要求后,需要修改SSH的配置文件。


?


SSH的最主要的配置文件有两个,分别为:


/etc/ssh/ssh_config


/etc/ssh/sshd_config


?


修改sshd_config如下:


#注释原来的Subsystem设置


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


#启用internal-sftp


Subsystem ?sftp ?internal-sftp


?


四,限制用户SFTP访问的根目录


#限制paul用户的根目录


Match User www


??? ChrootDirectory /ZServer


??? ForceCommand??? internal-sftp


?


【注意】


这里配置的账号paul被限制访问的目录,一定要是一个拥有者是root的目录,否则paul将无法被限制且会导致登陆各种错误和异常。


?


#限制blog和pay用户的根目录


Match Group sftp


??? ChrootDirectory %h


??? ForceCommand??? internal-sftp





五,最后*鬝SH服务:


# service sshd restart




?


?

相关推荐

最新更新

猜你喜欢