泽成杭州seo网站推广排名,各大网站创始人,淘宝客网站一定要备案吗,机械配件网站建设为什么用sftp而不是ftp#xff1f; sftp是使用ssh协议安全加密的文件传输协议#xff0c;ftp在很多时候都是使用的明文传输#xff0c;相对来说容易被抓包#xff0c;存在安全隐患。 需求说明 1. 使用sftp代替ftp来做文件存储#xff0c;锁定目录#xff0c;不允许用户切…为什么用sftp而不是ftp sftp是使用ssh协议安全加密的文件传输协议ftp在很多时候都是使用的明文传输相对来说容易被抓包存在安全隐患。 需求说明 1. 使用sftp代替ftp来做文件存储锁定目录不允许用户切换到未授权的目录 2. 不允许sftp用户ssh登陆到服务器执行操作 3. sftp用户使用密钥登陆 如何实现呢
1. 创建sftpuser用户组和根目录
# 创建一个sftpuser用户组groupadd sftpuser# 查看用户组groups sftpuser# 此目录及上级目录的所有者必须为root权限不高于755此目录的组最好设定为sftpusermkdir /data/sftpuserchown -R root:sftpuser /data/sftpuserchmod -R 0755 /data/sftpuser 2. 修改sshd_config配置
#备份配置文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak #修改端口为2222
sed -i s/#Port 22$/Port 2222/ /etc/ssh/sshd_config# 修改如下的配置没有的就添加
vim /etc/ssh/sshd_config# 注释这行
# Subsystem sftp /usr/libexec/openssh/sftp-server
Protocol 2
# 密码认证方式
PasswordAuthentication yes
# 密钥认证方式
PubkeyAuthentication yes
RSAAuthentication yes
Subsystem sftp internal-sftp -l info -f auth
Match group sftpuser
Chrootdirectory /data/sftpuser/%u
Allowtcpforwarding no
X11Forwarding no
Forcecommand internal-sftp -l info -f auth # 凡是在用户组sftpuser里的用户都可以使用sftp服务使用sftp服务连接上之后可访问目录为/data/sftpuser/username 3. 使用实例 # 举例说明 # test是一个sftpuser组的用户它通过sftp连接服务器上之后只能看到/data/sftpuser/test目录下的内容 # test2也是一个sftpuser组的用户它通过sftp连接服务器之后只能看到/data/sftpuser/test2目录下的内容 1创建用户和目录 test目录的所有者必须是root组最好设定为sftp权限不高于755 # 创建一个目录并授权
mkdir /data/sftpuser/test
chmod 0755 /data/sftpuser/test
chown root:sftpuser /data/sftpuser/test# 添加用户参数-s /sbin/nologin禁止用户通过命令行登录
useradd -g sftpuser -s /sbin/nologin test
2创建密钥
# 在用户家目录下创建.ssh目录
mkdir /home/test/.ssh# root用户生成公钥 私钥 直接回车即可
ssh-keygen -t rsa# 拷贝公钥到用户家目录下
cp /root/.ssh/id_rsa.pub /home/test/.ssh/authorized_keys# 给目录授权
chown -R test.sftpuser /home/test 3在test目录下创建可以写的upload目录
# 创建目录upload
mkdir /data/sftpuser/test/upload# 给目录授权
chown -R test:sftpuser /data/sftpuser/test/upload 注意sftp服务的根目录的所有者必须是root权限不能超过755(上级目录也必须遵循此规则)sftp的用户目录所有者也必须是root,且最高权限不能超过755 4测试验证
# 重启sshd服务systemctl restart sshd# sftp命令行本机测试用私钥免密登陆sftp -oPort2222 -oIdentityFile~/.ssh/id_rsa test192.168.100.100# 在其他机器上使用私钥登陆需要将私钥文件下载权限600