Debian SFTP配置中的主要认证方式
密码认证是SFTP最常用的认证方式之一,用户通过输入账户密码进行身份验证。配置时需在/etc/ssh/sshd_config文件中设置PasswordAuthentication yes(默认可能已启用);若需禁用,可将其设置为no。启用后,用户连接SFTP时会提示输入密码,验证通过后即可访问。
公钥认证是一种更安全的认证方式,通过“公钥-私钥”对实现无密码登录。配置步骤包括:在客户端生成密钥对(ssh-keygen -t rsa -b 4096),将公钥(id_rsa.pub)复制到服务器用户家目录的~/.ssh/authorized_keys文件中(可使用ssh-copy-id username@hostname命令简化操作);在/etc/ssh/sshd_config中设置PubkeyAuthentication yes(默认启用)。公钥认证无需每次输入密码,适用于自动化脚本或高频访问场景。
为兼顾安全性与便利性,可同时启用密码认证和公钥认证。在/etc/ssh/sshd_config中设置PasswordAuthentication yes和PubkeyAuthentication yes,用户可选择任一方式登录。这种方式既允许用户通过密码临时访问,也支持公钥认证的高效性,是生产环境中常见的配置。
虽然不属于传统“认证方式”,但通过Match指令可实现更严格的访问控制,间接增强认证安全性。例如,在/etc/ssh/sshd_config中添加:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
上述配置会将属于sftpusers组的用户限制在其主目录(%h)内,强制使用internal-sftp命令(禁止Shell访问),并禁用TCP转发和X11转发。这种方式适用于需要隔离用户访问权限的场景(如共享文件服务器)。