UOS1060e分离ssh与sftp服务

文章目录

原理

SFTP是SSH的一部分,SFTP没有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接操作。

通过新建另一个'sshd'进程,作为sftp服务的deamon,完成服务分离。

一、sftp 用户与目录

步骤一、创建sftp 用户

用户创建示例如下(以下为创建 sftpuser1 示例):

powershell 复制代码
# groupadd sftpgrp
# useradd -s /sbin/nologin -G sftpgrp sftpuser1
# passwd sftpuser1
Changing password for user sftpuser1.
New password:1qaz@WSX                                              #输入密码
Retype new password:1qaz@WSX                                   #确认密码

步骤二、创建 sftpuser1 用户目录

powershell 复制代码
# mkdir /sftp/sftpuser1 -p
# chown root:root /sftp
# chown root:root /sftp/sftpuser1
# chmod 755 /sftp
# chmod 755 /sftp/sftpuser1

二、ssh 和 sftp 服务分离

ssh 和 sftp 都有单独的服务,并且 ssh 监听 22 号端口,sftp 监听 10001 端

生成 sftp_config 文件

powershell 复制代码
# cp -p /etc/ssh/sshd_config /etc/ssh/sftpd_config

编辑/etc/ssh/sftpd_config,修改 sftp 的监听端口和 pid 文件等

powershell 复制代码
开启如下两个配置
Port 10001
PidFile /var/run/sftp.pid
修改如下配置
#Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f AUTH
Subsystem sftp internal-sftp -l INFO -f AUTH
文件尾增加如下配置
AllowGroups sftpgrp
Match Group sftpgr
             ChrootDirectory /sftp/%u
              AllowTcpForwarding no
             ForceCommand internal-sftp
             X11Forwarding no

编辑/etc/ssh/sshd_config,修改 sftp 的监听端口和 pid 文件

powershell 复制代码
vi /etc/ssh/sshd_config
增加一行内容
DenyGroups sftpgrp

拷贝 sshd 服务的 systemd unit file

powershell 复制代码
cp -p /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service

修改/etc/systemd/system/sftpd.service 文件配置

powershell 复制代码
[Unit]
Description=OpenSSH sftp server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=***.target ***.target auditd.service sshd.service
Wants=***.target
[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sftpd_config $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=***.target

生成认证配置文件

powershell 复制代码
cp -p /etc/pam.d/sshd /etc/pam.d/sftpd

三、启动与停止

powershell 复制代码
#  systemctl restart sshd.service
#  systemctl restart sftpd.service

四、验证

验证:使用 sftpuser1 用户的通过 sftp 登陆系统

查看当前目录,当前空间大小

本地登陆

远程登陆

从ftp服务器下载文件到本地

将本地目录上传到ftp服务器

这个是ftp服务器

其他验证方式就是windows环境来验证,前提是本地需要开放端口,理论上来说是可用的。

相关推荐
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
开发者联盟league2 天前
安装pnpm
ssh
小宇宙Zz2 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈3 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造