【问题标题】:Replace FTP with SFTP用 SFTP 替换 FTP
【发布时间】:2017-03-05 14:41:55
【问题描述】:

我目前正在将文件从 Windows 服务器 FTP 传输到 Unix 机器。我想更改脚本的以下部分并将 FTP 进程迁移为 SFTP。

@echo off
echo user %user%> ftpcmd.dat
echo %password%>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo put %filetobeuploaded% %filepath%%File%>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat %host%
del ftpcmd.dat
:END

我的 Windows 目录中安装了 PSFTP.EXE。使用它我可以使用 SFTP 发送文件吗?

如何将行 ftp -n -s:ftpcmd.dat %host% 替换为 SFTP。我知道你可以做这样的事情......

CALL PSFTP.EXE someUserName@54.54.54.54 ....

如果有人熟悉,请你帮我完成它。我会给出什么论据?用户、密码、远程目录、主机详细信息保存在属性文件中。我正在寻找使用密钥而不是密码。你可以将现有的ftpcmd.dat arr 传递给psftp 吗?

【问题讨论】:

    标签: windows ftp sftp putty file-transfer


    【解决方案1】:

    您也可以使用 WinSCP。它支持 SFTP 和脚本。

    请参阅guide for converting Windows FTP script to WinSCP SFTP script

    脚本将如下所示:

    open sftp://%user%:%password%@%host%
    put -transfer=binary %filetobeuploaded% %filepath%%File%
    exit
    

    您可以像这样运行脚本(如果保存到script.txt):

    winscp.com /script=script.txt
    

    注意(与ftp.exe相反),环境变量也在WinSCP脚本中解析。


    如果要使用私钥文件,请使用:

    open sftp://%user%@%host% -privatekey=path\key.ppk
    

    (我是 WinSCP 的作者)

    【讨论】:

      【解决方案2】:

      我不是这方面的专家,所以有人可能会有更好的答案,但我建议使用 pscp 而不是 psftp。我认为这是更合适的工具。

      还可以考虑设置 ssh 密钥,这样就不需要每次都发送密码了

      pscp 可以从这里下载: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

      如果您在 Google 上搜索“pscp 教程”,我相信您可以找到解释如何使用它的众多文章中的一篇。

      【讨论】:

        【解决方案3】:

        问题是从您的批处理文件中调用第 3 方 EXE 文件、等待退出代码、验证结果......这一切都很容易。

        我建议您查看其他可编写脚本的解决方案,它们允许您在独立且更友好的环境中运行 FTP 和 SFTP 文件传输。 一种这样的解决方案是 Syncplify.me FTP 脚本,您可以在此处找到更多详细信息:http://www.syncplify.me/products/ftp-script/

        【讨论】:

          猜你喜欢
          • 2023-03-17
          • 2012-12-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多