【发布时间】:2014-08-18 21:19:41
【问题描述】:
我需要将一组文件上传到一个 sftp 帐户。
我的第一个想法是使用 php 的 ssh2_connect() 函数,我能够让这个在本地工作没有问题。然而,一旦我转移到开发环境,我很快意识到这不是一个好的解决方案,因为有太多的依赖项不存在,安装它们需要太多人的太多批准。
所以,我的下一个想法是使用 bash,而这正是我需要帮助的地方。我将通过 cron 每小时运行一次这个 bash 脚本,所以它需要无人值守。但是,当我运行 sftp/scp 时,它需要密码。
sftp 帐户不允许 ssh 连接,因此我无法创建授权密钥。我也不想依赖远程机器上的 .ssh 文件夹。
任何建议将不胜感激。
请记住,我无法安装任何东西,所以没有钥匙串、sshpass 或期望。在How to run the sftp command with a password from Bash script? 中找到的所有其他答案都不可行,因为我无法在服务器上安装任何东西。
【问题讨论】:
-
@anubhava 这不是重复的,因为您提供的帖子没有回答我的问题
-
@anubhava 我在我的帖子中还提到,该帖子的答案不适合我的情况,因为我无法使用密钥或在服务器上安装任何东西。
-
缺乏 shell 访问权限并不一定意味着您不能设置密钥。如果你可以写
~/.ssh/authorized_keys,那么你可以在另一个系统上生成一个密钥对,准备一个合适的authorized_keys文件,然后用sftp上传到服务器——只要服务器配置为允许密钥认证。跨度> -
好的,我重新打开了这个问题,但您不太可能在这里得到一些简单的答案。
-
谢谢,试试看不会有什么坏处