0

目前我正在尝试使用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

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

4

1 回答 1

0

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

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

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

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

于 2012-10-29T19:34:17.670 回答