温馨提示×

如何自动登录linux sftp

小樊
39
2026-10-10 21:58:31
栏目: 智能运维

在 Linux 下实现 SFTP 自动登录,常见且安全的方式有几种,按推荐程度说明如下。


一、推荐方式:SSH 密钥登录(无密码,最安全)

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

ssh-keygen -t rsa -b 4096

一路回车即可,默认生成:

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

2. 上传公钥到 SFTP 服务器

ssh-copy-id user@sftp.server.com

或手动追加到服务器:

~/.ssh/authorized_keys

3. 直接自动登录 SFTP

sftp user@sftp.server.com

✅ 不再需要输入密码


二、使用 sshpass(不推荐,仅测试用)

⚠️ 密码会明文出现,存在安全风险

安装

# CentOS
yum install sshpass

# Ubuntu
apt install sshpass

自动登录

sshpass -p 'your_password' sftp user@sftp.server.com

三、使用 SFTP 批处理脚本(配合密钥)

适合自动化任务:

sftp -b batch.txt user@sftp.server.com

batch.txt 示例:

put localfile.txt /remote/path/
bye

四、使用 lftp(支持脚本化)

lftp sftp://user@sftp.server.com -e "put file.txt; bye"

配合密钥或 .netrc 使用更方便。


五、Windows 用户补充

  • 使用 WinSCP:可保存会话并脚本调用
  • 使用 FileZilla:保存站点密码

总结建议

方式 安全性 推荐度
SSH 密钥 ⭐⭐⭐⭐⭐ ✅ 强烈推荐
sshpass ⭐ ❌ 仅临时
lftp ⭐⭐⭐⭐ ✅ 可用

如果你有 具体场景(如 cron 定时、脚本、Docker、Windows),可以告诉我,我给你更精确的方案。

0 踩