可以的。CentOS 上的 SFTP 完全支持“免密登录”,但这里的“免密”通常指的是基于 SSH 密钥认证的免密,而不是匿名访问(SFTP 不支持真正的匿名)。
下面分几种常见情况说明:
SFTP 底层就是 SSH,所以只要配置好 SSH 公钥登录,SFTP 就能免密。
ssh-keygen -t rsa -b 2048
(一路回车,不设置密码即为免密)
生成:
~/.ssh/id_rsa(私钥)~/.ssh/id_rsa.pub(公钥)ssh-copy-id user@centos_ip
或手动追加:
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
sftp user@centos_ip
✅ 不再输入密码即成功
常用于运维/文件传输账号。
/etc/ssh/sshd_configMatch User sftpuser
PasswordAuthentication no
ForceCommand internal-sftp
ChrootDirectory /home/sftpuser
重启 SSH:
systemctl restart sshd
检查:
~/.ssh 权限:700authorized_keys 权限:600restorecon -Rv ~/.ssh
PermitRootLogin prohibit-password
❌ 不能
✅ CentOS SFTP 可以免密
✅ 方式是 SSH 密钥认证
✅ 安全、生产推荐
如果你是想 脚本自动传文件 / Jenkins / Ansible / 容器场景,我也可以给你具体示例。