Ubuntu 的 SFTP 是支持密钥登录的。
更准确地说:
- SFTP 本身 只是基于 SSH 的文件传输协议
- 真正决定是否支持密钥登录的是 SSH(OpenSSH)
- Ubuntu 默认自带 OpenSSH Server / Client,天然支持 SSH 公钥认证
一、SFTP 使用密钥的基本原理
- 客户端生成 公钥 + 私钥
- 把 公钥 放到服务器用户目录下:
~/.ssh/authorized_keys
- 客户端使用 私钥 连接 SFTP
- 认证通过即可登录(无需密码)
二、Ubuntu 服务端开启密钥登录(默认已支持)
通常只需确认以下配置(在 /etc/ssh/sshd_config):
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改后重启 SSH:
sudo systemctl restart ssh
三、客户端使用密钥连接 SFTP 示例
命令行方式
sftp -i ~/.ssh/id_rsa user@ubuntu_ip
FileZilla / WinSCP
- 登录类型:密钥文件
- 选择私钥(如
id_rsa 或 id_rsa.ppk)
四、常见补充说明
- ✅ 支持 RSA / ED25519 / ECDSA 等密钥
- ✅ 可 完全禁用密码登录(更安全)
- ❌ SFTP 本身不“单独”决定认证方式,依赖 SSH
如果你需要,我也可以给你:
- 完整密钥生成 + 配置教程
- 禁止密码只允密钥的加固方案
- Docker / 云服务器中的 SFTP 密钥配置