SFTP用户认证主要有密码认证和密钥认证两种方式,以下是具体设置步骤:
sudo yum install openssh-serversudo apt update && sudo apt install openssh-serversudo groupadd sftpusers # 创建用户组
sudo useradd -g sftpusers -s /sbin/nologin sftpuser # 创建用户并禁止SSH登录
sudo passwd sftpuser # 设置密码
/etc/ssh/sshd_config,添加以下内容:Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h # 限制用户只能访问主目录
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
确保PasswordAuthentication yes(默认开启)。sudo mkdir /home/sftpuser/uploads # 创建可写目录
sudo chown root:root /home/sftpuser # 主目录属主为root
sudo chmod 755 /home/sftpuser
sudo chown sftpuser:sftpusers /home/sftpuser/uploads # 可写目录属主为用户
sudo systemctl restart sshdssh-keygen -t rsa -b 4096(默认保存到~/.ssh/id_rsa和~/.ssh/id_rsa.pub)ssh-copy-id sftpuser@server_ip(或手动复制公钥到服务器~/.ssh/authorized_keys)/etc/ssh/sshd_config中添加:PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no # 可选:禁用密码认证
sudo systemctl restart sshd使用SFTP客户端(如FileZilla或命令行)连接:
ssh sftpuser@server_ip(密码认证需输入密码,密钥认证需指定私钥路径)
安全提示:
ChrootDirectory的权限为755且属主为root,防止用户越权访问。