在Ubuntu上设置SFTP虚拟用户,您需要遵循以下步骤:
首先,确保您的系统已安装了OpenSSH服务器和PAM(可插拔认证模块)。如果没有,请运行以下命令来安装它们:
sudo apt-get update
sudo apt-get install openssh-server libpam-pwquality
使用以下命令创建一个新用户(将your_username
替换为您选择的用户名):
sudo adduser your_username
按照提示设置密码和其他选项。完成后,切换到新创建的用户:
sudo su - your_username
为新用户创建一个家目录,并设置适当的权限:
mkdir /home/your_username
chown root:root /home/your_username
chmod 755 /home/your_username
编辑/etc/ssh/sshd_config
文件,以允许使用PAM进行认证:
sudo nano /etc/ssh/sshd_config
在文件末尾添加以下行:
Match Group sftp_users
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
保存并关闭文件。
创建一个名为/etc/pam.d/virtual-sftp
的新文件:
sudo nano /etc/pam.d/virtual-sftp
添加以下内容:
auth required pam_pwquality.so retry=3 minlen=8 difok=4
auth required pam_listfile.so item=user sense=deny file=/etc/ssh/deny_users onerr=succeed
auth sufficient pam_unix.so nullok
account required pam_unix.so
保存并关闭文件。
创建一个名为sftp_users
的新用户组:
sudo groupadd sftp_users
将新创建的用户添加到该组:
sudo usermod -aG sftp_users your_username
编辑/etc/ssh/sshd_config
文件,以启用PAM认证:
sudo nano /etc/ssh/sshd_config
找到#AuthenticationMethods
行(如果没有,请添加它),并取消注释以下内容:
AuthenticationMethods publickey,keyboard-interactive:pam
保存并关闭文件。
最后,重启SSH服务以应用更改:
sudo systemctl restart ssh
现在,您应该能够使用新创建的虚拟用户通过SFTP连接到您的Ubuntu服务器。请注意,您可能需要根据实际情况调整防火墙设置,以允许SFTP连接。