【发布时间】:2012-07-29 02:31:10
【问题描述】:
我正在尝试使用批处理脚本从 sftp 站点下载文件。我收到以下错误:
Permission denied (publickey,password,keyboard-interactive).
Couldn't read packet: Connection reset by peer
运行命令时:
sftp -b /home/batchfile.sftp <user>@<server ip>:<folder>
batchfile.sftp 包含这些数据:
password
lcd [local folder]
cd [sftp server folder]
get *
bye
注意:在提示符下运行时它正在工作
sftp <user>@<server ip>:<folder>
但我需要能够自动输入密码。
【问题讨论】:
-
通过从批处理文件中删除密码是否有效?通过手动输入密码,其余功能是否正常工作?
-
将密码以纯文本形式存储在文件中显然不安全——如果您不想每次都输入密码,我强烈建议您使用 RSA 密钥身份验证。
-
@lindhe 将密码存储在纯文本文件中显然与使用没有密码的 RSA 密钥身份验证一样安全。如果您要使事情自动化,这确实是唯一的选择。只需确保纯文本文件只能由文件所有者读取(就像 ssh 密钥所需的一样)
-
只是一个想法,但我使用的一种似乎与本地私有 ssh 密钥一样安全的方法是将文件放在 ~/.ssh 目录中,并具有与 .ssh/{your_private_keyfile_name} 相同的权限。我不推荐以下将密码放入 .bashrc 的方法,尤其是将其放入导出变量中。 .bashrc 被很多进程读取,并且密码在您的环境变量中以“纯文本”形式显示。如有疑问,请使用 .ssh 样式 :)
标签: batch-file passwords sftp