我需要使用 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/