1

我正在尝试编写一个脚本来自动将文件上传到 sftp 服务器。我的问题是身份验证。

  • 我知道不可能在 sftp 的 bash 脚本中存储密码。
  • 我不能使用密钥,因为服务器管理员不允许我。
  • 我不想使用任何额外的东西(sshpass/expect),因为我不能保证它们会在我正在使用的机器上(需要脚本,以便进程不会绑定到特定的机器)。

手动输入密码不是问题我只需要让脚本等待用户输入密码。在我运行脚本的那一刻,它会打开终端,提示输入密码,但是当没有输入密码时否则会发生。如果我在正确上传所有内容后输入代码手册行。

#!bin/bash/
cd /remote_directory
lcd /local_directory
put some_file.txt
4

1 回答 1

1

经过几个月的寻找答案,我终于找到了解决方案。这是对我什至不记得的其他线程中的答案的评论。希望这可以帮助其他人。

您的 bash 脚本应如下所示,并将连接到 sftp 服务器,提示用户输入密码,然后执行其余命令。

#!/bin/bash

sftp user@server <<!
cd /the/remote/directory
lcd /your/local/directory
put/get some.file
!
于 2013-11-28T16:17:29.183 回答