温馨提示×

linux sftp支持密钥登录吗

小樊
47
2026-09-05 03:21:50
栏目: 智能运维

是的,Linux 的 SFTP 支持密钥登录(公钥认证),而且这是非常常见且推荐的做法。

简要说明

SFTP 基于 SSH 协议,而 SSH 本身天然支持:

  • 密码登录
  • 公钥 / 私钥(密钥)登录

因此,只要 SSH 服务端开启了公钥认证,SFTP 就可以直接使用密钥登录。


基本使用方式

1. 生成密钥对(客户端)

ssh-keygen -t rsa -b 4096

默认会生成:

  • ~/.ssh/id_rsa(私钥)
  • ~/.ssh/id_rsa.pub(公钥)

2. 将公钥传到服务器

ssh-copy-id user@server_ip

或手动把 id_rsa.pub 内容追加到服务器:

~/.ssh/authorized_keys

3. 使用 SFTP 密钥登录

sftp -i ~/.ssh/id_rsa user@server_ip

服务端配置要求(关键)

在服务器 /etc/ssh/sshd_config 中需确保:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

修改后重启 SSH:

systemctl restart sshd

常见用途

  • 禁用密码登录,增强安全性
  • 自动化脚本 / CI/CD 使用 SFTP
  • 免交互文件传输

如果你需要:

  • 仅允许 SFTP 不允许 SSH
  • 使用非默认端口
  • 多用户 / chroot 限制

我也可以继续帮你配置示例。

0