配置 CentOS SFTP 服务器涉及几个步骤,包括安装必要的软件包、配置 SSH 服务、设置用户权限和创建 SFTP 用户目录。以下是一个详细的步骤指南:
1. 安装必要的软件包
首先,确保你的 CentOS 系统是最新的,并安装 OpenSSH 服务器。
sudo yum update -y sudo yum install openssh-server -y
2. 配置 SSH 服务
编辑 SSH 服务的主配置文件 /etc/ssh/sshd_config
。
sudo vi /etc/ssh/sshd_config
确保以下配置项已经启用(删除或注释掉前面的 #
):
PubkeyAuthentication yes PasswordAuthentication no
这将禁用密码认证,只允许公钥认证。你也可以根据需要调整其他配置项。
3. 创建 SFTP 用户目录
为每个需要使用 SFTP 的用户创建一个目录,并设置适当的权限。
sudo useradd -m sftpuser1 sudo passwd sftpuser1
设置用户的密码:
sudo passwd sftpuser1
创建用户目录并设置权限:
sudo mkdir /home/sftpuser1 sudo chown sftpuser1:sftpuser1 /home/sftpuser1 sudo chmod 755 /home/sftpuser1
4. 配置 SELinux(可选)
如果你的 CentOS 系统启用了 SELinux,可能需要调整相关策略以允许 SFTP 访问。
sudo setsebool -P sftp_home_dir on sudo semanage fcontext -a -t httpd_sys_rw_content_t "/home/sftpuser1(/.*)?" sudo restorecon -Rv /home/sftpuser1
5. 重启 SSH 服务
保存并退出配置文件后,重启 SSH 服务以应用更改。
sudo systemctl restart sshd
6. 测试 SFTP 连接
你可以使用 sftp
命令测试连接,或者使用文件管理器(如 FileZilla)进行连接。
sftp sftpuser1@your_server_ip
输入密码后,你应该能够成功连接到 SFTP 服务器。
7. 创建 SFTP 用户目录的脚本(可选)
为了简化上述步骤,你可以创建一个脚本来自动化创建用户和目录的过程。
#!/bin/bash # 添加用户 useradd -m $1 echo $1:$1 | chpasswd # 创建用户目录 mkdir /home/$1 chown $1:$1 /home/$1 chmod 755 /home/$1 echo "User $1 created with home directory /home/$1"
保存为 create_sftp_user.sh
,并赋予执行权限:
chmod +x create_sftp_user.sh
然后运行脚本:
./create_sftp_user.sh sftpuser1
这样就可以快速添加新的 SFTP 用户了。
通过以上步骤,你应该能够成功配置一个 CentOS SFTP 服务器。