可以的,CentOS 上的 SFTP 完全支持使用密钥(SSH 密钥)登录,而且在实际生产环境中,用密钥比密码更安全、也更常见。
下面给你一个简要说明 + 常见配置方式。
SFTP 是基于 SSH(OpenSSH) 的协议,所以:
CentOS 默认使用的就是 OpenSSH,所以原生支持。
ssh-keygen -t rsa -b 2048
默认生成:
~/.ssh/id_rsa~/.ssh/id_rsa.pubssh-copy-id user@server_ip
或手动追加到:
~/.ssh/authorized_keys
sftp user@server_ip
如果私钥不是默认路径:
sftp -i /path/to/private_key user@server_ip
✅ 不需要输入密码
编辑:
/etc/ssh/sshd_config
确保有以下配置:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启 SSH:
systemctl restart sshd
如果你是想:
可以这样配置:
Match User sftpuser
PasswordAuthentication no
ForceCommand internal-sftp
ChrootDirectory /data/sftp
AllowTcpForwarding no
然后:
systemctl restart sshd
常见原因:
.ssh 权限不是 700authorized_keys 权限不是 600快速修复:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
✅ CentOS SFTP 可以用密钥
✅ 基于 SSH,配置简单
✅ 推荐生产环境使用
如果你有具体场景(比如:
可以告诉我,我可以直接给你一份可用的配置示例。