是的,Linux 的 SFTP 支持密钥登录(公钥认证),而且这是非常常见且推荐的做法。
SFTP 基于 SSH 协议,而 SSH 本身天然支持:
因此,只要 SSH 服务端开启了公钥认证,SFTP 就可以直接使用密钥登录。
ssh-keygen -t rsa -b 4096
默认会生成:
~/.ssh/id_rsa(私钥)~/.ssh/id_rsa.pub(公钥)ssh-copy-id user@server_ip
或手动把 id_rsa.pub 内容追加到服务器:
~/.ssh/authorized_keys
sftp -i ~/.ssh/id_rsa user@server_ip
在服务器 /etc/ssh/sshd_config 中需确保:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改后重启 SSH:
systemctl restart sshd
如果你需要:
我也可以继续帮你配置示例。