可以的,Linux 的 SFTP 是支持免密登录的,而且这是非常常见、推荐的做法。
SFTP 基于 SSH 协议,所以SFTP 免密登录本质就是 SSH 免密登录,通常使用 SSH 公钥认证实现。
ssh-keygen -t rsa -b 4096
一路回车即可,默认生成:
~/.ssh/id_rsa~/.ssh/id_rsa.pubssh-copy-id user@server_ip
或手动追加到服务器:
# 在服务器上
echo "客户端公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
sftp user@server_ip
✅ 不再需要输入密码
# ~/.ssh/config
Host sftp-server
HostName 192.168.1.100
User user
IdentityFile ~/.ssh/id_rsa
然后:
sftp sftp-server
sftp -i ~/.ssh/id_rsa user@host
如果仍提示输入密码:
~/.ssh 权限应为 700authorized_keys 权限应为 600PubkeyAuthentication yes
PasswordAuthentication no # 可选
✅ SFTP 可以免密登录
✅ 标准做法:SSH 公钥认证
✅ 安全、稳定、适合自动化
如果你需要 仅 SFTP 限制用户(不能 SSH) 或 自动化脚本示例,也可以继续问我。