【问题标题】:NODEJS - SFTP - Handling process outputNODEJS - SFTP - 处理过程输出
【发布时间】:2012-07-27 15:21:58
【问题描述】:

目前我正在尝试使用 node-sftp 来为我的 nodejs 脚本提供使用私钥进行 SFTP 的能力。

自节点 v 0.6 以来,该模块似乎已损坏(tty.open 不再是一种方法)。 所以我尝试使用子进程并生成我的 sftp 命令。

现在连接似乎工作正常(我检查了 ftp 服务器日志@/var/log/auth.log) 我还可以在节点窗口中看到一些输出...

Permanently added '46.x.x.x' (RSA) to the list of known hosts.
Connected to 46.x.x.x.
Changing to: /home/deploy/somefolder

当我使用以下命令直接通过命令行连接时,它会以 sftp> 之类的提示结束,它正在等待我的 FTP 命令

sftp -o Port=22 -o PasswordAuthentication=no -o IdentityFile=private_key -o UserKnownHostsFile=/v/null -o StrictHostKeyChecking=no -o BatchMode=yes deploy@46.x.x.x:/home/deploy/somefolder

有人对我可能出错的地方有任何建议吗?

【问题讨论】:

    标签: node.js debian sftp


    【解决方案1】:

    没有更多细节很难说,但我会看看: https://github.com/chjj/pty.js/

    这将模拟一个您可以读写的 tty 设备。

    如果您可以提供一些您尝试过的其他代码,我们或许可以为您指明更好的方向。

    您也可以尝试从https://github.com/ajaxorg/node-sftp.git 克隆 node-sftp 模块并直接使用该库而不是从 npm,看起来 github 中的最新版本支持更新 0.6 的节点版本

    【讨论】:

    • 我通过 NPM 获得的 node-sftp 版本运行不佳,我认为来自 github 的版本包含您提到的 pty 内容,因此 SFTP 连接运行良好。反正你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    相关资源
    最近更新 更多