可以的,Linux 的 SFTP 是可以免密登录的,通常是通过 SSH 密钥认证 来实现的,而不是用密码。
SFTP 基于 SSH 协议,只要 SSH 能免密登录,SFTP 就能免密。
免密方式主要有:
forcecommand + 固定用户)ssh-keygen -t rsa -b 4096
一路回车即可(不设置密码则为完全免密)
生成后:
~/.ssh/id_rsa~/.ssh/id_rsa.pubssh-copy-id user@server_ip
或手动操作:
cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
sftp user@server_ip
如果直接进去了,说明成功 ✅
确保 /etc/ssh/sshd_config 中:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改后重启 SSH:
systemctl restart sshd
可以在服务器用户上限制:
Match User sftpuser
ForceCommand internal-sftp
PasswordAuthentication no
ChrootDirectory /home/sftpuser
这样该用户:只能 SFTP,不能 SSH 登录,且免密
❌ SFTP 不能“记住密码”实现真正免密
✅ 只能通过密钥或证书实现
如果你愿意,我可以:
你现在是 哪一端连哪一端?