windows - 使用 SFTP 将文件从 Windows 传输到 Linux

标签 windows batch-file ssh sftp putty

我需要使用 SFTP 协议(protocol)将文件从基于 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 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1273707152232b203c23242a3c223c232325" rel="noreferrer noopener nofollow">[email protected]</a>
put c:/myfile/myfile.txt

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

abc用户拥有所有权限。

最佳答案

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

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


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

PuTTY 附带 psftp.exe SFTP client模仿 OpenSSH sftp 客户端。

psftp.exe <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="78191a1b3849414a56494e4056485649494f" rel="noreferrer noopener nofollow">[email protected]</a> -b C:\test\ssh.txt

其中 ssh.txt 包含 put 命令:

put c:\myfile\myfile.txt 

关于windows - 使用 SFTP 将文件从 Windows 传输到 Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35983202/

相关文章:

ssh - AWS pem key 不起作用

macos - 为 Hadoop 安装 OSX 排除 ssh 到本地主机的故障

java - 防止 jfx packager 的辅助启动器在 Windows 中触发 UAC/提升权限

batch-file - 如何删除所有超过 2 天的空文件夹?

python - 批处理文件以激活 env 并运行 spyder。 CMD 保持打开状态

ubuntu - 允许用户通过 ssh 连接到 EC2 Ubuntu 实例?

windows - Explorer.exe CPU 使用率随非 Explorer 进程增加?

c - Windows上标准c库的dll文件名是什么?

Java file.setReadable(True) 不起作用,即使在管理员用户上也是如此?

batch-file - 我正在尝试通过批处理命令使用 sqlcmd.exe 检查数据库是否存在,并将根据结果执行其他操作