linux下如何配置sftp
linux下如何配置sftp详细介绍
在 Linux 下配置 SFTP(SSH 文件传输协议)可按以下步骤操作:
1. 确保 SSH 服务已安装和运行
多数 Linux 发行版默认安装了 OpenSSH 服务器,你可以通过以下命令检查其运行状态:
bash
systemctl status
若未运行,使用下面的命令启动:
bash
systemctl start
若未安装,不同发行版使用不同的命令进行安装:
- Ubuntu/Debian:
bash
updateopenssh-server
- CentOS/RHEL:
bash
yum openssh-server
2. 创建 SFTP 用户
可使用以下命令创建一个新用户:
bash
adduser sftpuser
之后设置该用户的密码:
bash
sftpuser
3. 配置 SSH 服务以启用 SFTP
编辑 SSH 服务的配置文件 /etc/ssh/sshd_config:
bash
/etc/ssh/sshd_config
找到并修改或添加以下内容:
plaintext
# 禁用子系统Subsystem sftp internal-sftp
# 匹配特定用户或组
Match User sftpuser
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Subsystem sftp internal-sftp:启用内置的 SFTP 服务。Match User sftpuser:指定仅对sftpuser用户应用以下配置。ChrootDirectory /home/%u:将用户限制在其主目录下,%u代表用户名。ForceCommand internal-sftp:强制用户只能使用 SFTP。AllowTcpForwarding no和X11Forwarding no:禁用 TCP 转发和 X11 转发。
4. 调整目录权限
为使 ChrootDirectory 生效,其目录及上级目录必须仅由根用户拥有且不可写:
bash
root:root /home/sftpuser/home/sftpuser
你可以创建一个子目录供用户上传文件,并赋予相应权限:
bash
/home/sftpuser/uploadsftpuser:sftpuser /home/sftpuser/upload
/home/sftpuser/upload
5. 重启 SSH 服务
配置修改完成后,重启 SSH 服务使更改生效:
bash
systemctl restart
6. 测试 SFTP 连接
使用 sftp 命令测试连接:
bash
sftpuser@localhost
912sftp sftpuser@localhost
输入密码后,若能成功登录,说明 SFTP 配置成功。
通过以上步骤,你就能在 Linux 系统上配置并使用 SFTP 服务了。