CentOS SFTP如何进行远程管理
导读:CentOS SFTP 远程管理实操指南 一 环境准备与基础配置 安装并启动 OpenSSH 服务器:sudo yum install -y openssh-server && sudo systemctl start s...
CentOS SFTP 远程管理实操指南
一 环境准备与基础配置
- 安装并启动 OpenSSH 服务器:
sudo yum install -y openssh-server & & sudo systemctl start sshd & & sudo systemctl enable sshd。 - 防火墙放行 SSH 22/TCP:
sudo firewall-cmd --permanent --add-service=ssh & & sudo firewall-cmd --reload。 - 验证服务与连通性:
sudo systemctl status sshd;客户端可用sftp your_user@your_server_ip测试连接。
二 安全加固的 SFTP 专用账户与目录
- 创建 sftpusers 组与专用账户(禁止 Shell 登录,仅允许 SFTP):
sudo groupadd sftpuserssudo useradd -g sftpusers -d /upload -s /sbin/nologin sftpusersudo passwd sftpuser
- 规划目录结构(示例以 /data/sftp 为 SFTP 根):
sudo mkdir -p /data/sftp/uploadsudo chown root:sftpusers /data/sftp & & sudo chmod 755 /data/sftpsudo chown sftpuser:sftpusers /data/sftp/upload & & sudo chmod 755 /data/sftp/upload
- 关键权限规则(Chroot 要求):
- ChrootDirectory 指定的目录及其所有上级目录的属主必须为 root,且只允许属主写,权限不超过 755(如 701/755)。
- 可写目录放在 Chroot 目录下的子目录中,并单独赋权给相应用户/组。
三 配置 SSHD 启用 internal-sftp 与访问控制
- 编辑 /etc/ssh/sshd_config,在文件末尾加入(可按用户或用户组匹配):
- 按用户示例:
Match User sftpuser ChrootDirectory /data/sftp ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no PermitTTY no - 按组示例:
Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
- 按用户示例:
- 建议启用 internal-sftp(现代系统自带,便于 Chroot 与权限控制):
- 将原有的
Subsystem sftp /usr/libexec/openssh/sftp-server注释或替换为:
Subsystem sftp internal-sftp
- 将原有的
- 语法检查与生效:
sudo sshd -t(配置文件语法检查)sudo systemctl restart sshd
- 说明:使用 Match 段可实现“仅 SFTP、禁 Shell、禁端口转发”等集中管控。
四 客户端连接与常用操作
- 口令登录:
sftp sftpuser@your_server_ip,按提示输入密码。 - 密钥登录(推荐):
- 客户端生成密钥:
ssh-keygen -t rsa -b 2048 - 上传公钥:
ssh-copy-id sftpuser@your_server_ip - 服务器端如需显式允许密钥:
sudo vi /etc/ssh/sshd_config中设置PasswordAuthentication no(可选,确保已有可用公钥后再关闭密码)。
- 客户端生成密钥:
- SFTP 常用命令:
- 远程:
ls、cd、pwd - 本地:
lcd、lls、lpwd - 传输:
put local_file、get remote_file - 退出:
exit/bye
- 远程:
五 常见问题排查与安全建议
- 无法登录或立即断开:多为 Chroot 目录权限不合规。确保 Chroot 及其上级目录属主为 root、权限 ≤ 755,可写目录放在子目录并单独赋权。
- 启动失败或配置不生效:执行
sudo sshd -t检查语法;sudo systemctl status sshd与journalctl -xeu sshd查看详细错误。 - 日志审计:登录与 SFTP 操作记录在 /var/log/secure,可用于安全审计与问题定位。
- 安全建议:
- 优先使用 SSH 密钥,必要时再启用口令;禁用不必要的
AllowTcpForwarding、X11Forwarding、PermitTTY。 - 仅开放 22/TCP,并通过防火墙限制来源 IP。
- 遵循最小权限原则与目录权限规范,定期更新系统与 SSH。
- 优先使用 SSH 密钥,必要时再启用口令;禁用不必要的
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS SFTP如何进行远程管理
本文地址: https://pptw.com/jishu/785575.html
