温馨提示×

linux sftp能免密吗

小樊
48
2026-10-19 14:57:42
栏目: 智能运维

可以的,Linux 的 SFTP 是可以免密登录的,通常是通过 SSH 密钥认证 来实现的,而不是用密码。


一、SFTP 免密的原理

SFTP 基于 SSH 协议,只要 SSH 能免密登录,SFTP 就能免密。

免密方式主要有:

  1. SSH 公钥认证(最常用、推荐)
  2. SSH 证书(企业环境)
  3. 某些特殊配置(如 forcecommand + 固定用户)

二、最常见的做法:SSH 密钥免密

1️⃣ 在客户端生成密钥

ssh-keygen -t rsa -b 4096

一路回车即可(不设置密码则为完全免密)

生成后:

  • 私钥:~/.ssh/id_rsa
  • 公钥:~/.ssh/id_rsa.pub

2️⃣ 把公钥放到服务器

ssh-copy-id user@server_ip

或手动操作:

cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

3️⃣ 测试 SFTP 是否免密

sftp user@server_ip

如果直接进去了,说明成功 ✅


三、服务器端必要配置

确保 /etc/ssh/sshd_config 中:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

修改后重启 SSH:

systemctl restart sshd

四、只想用 SFTP,禁止 SSH 登录(常见需求)

可以在服务器用户上限制:

Match User sftpuser
    ForceCommand internal-sftp
    PasswordAuthentication no
    ChrootDirectory /home/sftpuser

这样该用户:只能 SFTP,不能 SSH 登录,且免密


五、常见误区

❌ SFTP 不能“记住密码”实现真正免密
✅ 只能通过密钥或证书实现


如果你愿意,我可以:

  • 给你一套 仅 SFTP 的完整安全配置
  • 或帮你写 自动化脚本
  • 或说明 Windows → Linux SFTP 免密 怎么做

你现在是 哪一端连哪一端?

0 踩