【问题标题】:Transfer file using SFTP from Windows to Linux [closed]使用 SFTP 将文件从 Windows 传输到 Linux [关闭]
【发布时间】:2016-06-29 05:38:58
【问题描述】:

我需要使用 SFTP 协议将文件从基于 Windows 的服务器传输到我的 Linux 服务器。它们在同一个 LAN 网络中。

我已在我的 Linux 服务器上启用 SFTP。
使用:

sudo apt-get install openssh-server
sudo apt-get install ssh

我为我的 SFTP 服务器创建了一个组(我称之为 sftponly)和一个用户 (abc)。
我在 Windows 环境中使用 PuTTY 作为我的 SSH 客户端。
在我的 Windows 中,我有一个位于 c:/myfile/myfile.txt 的文本文件,我想使用 SFTP 将此文件上传到我的 Linux 服务器中

我的批处理文件代码如下:

start putty.exe -ssh 192.168.0.117:4747 -l admin-pw Password -m C:\\test\ssh.txt

ssh.txt的内容是:

sftp abc@192.168.0.117
put c:/myfile/myfile.txt

我确定put 语法是错误的,因为我们是在 Windows 环境中。我的ssh.txt 文件中缺少什么代码,以便我可以将myfile.txt 上传到 SFTP?

abc 用户拥有所有权限。

【问题讨论】:

    标签: windows batch-file ssh sftp putty


    【解决方案1】:

    远程sftp 进程无法访问您Windows 机器上的本地文件。

    (即使可以,您的脚本文件仍然是错误的,因为 put 将由 shell 执行[并且不理解],而不是由 sftp。)


    您必须使用本地 SFTP 客户端将文件上传到删除 SFTP 服务器。

    PuTTY 带有模仿 OpenSSH sftp 客户端的 psftp.exe SFTP client

    psftp.exe abc@192.168.0.117 -b C:\test\ssh.txt
    

    其中ssh.txt 包含put 命令:

    put c:\myfile\myfile.txt 
    

    【讨论】:

    • 你救了我的命,它的工作完美。谢谢。