是否有一个 Windows 批处理命令可以将文件从 Linux 服务器复制到我的本地机器?

是否有一个 Windows 批处理命令可以将文件从 Linux 服务器复制到我的本地机器?

我一直在使用以下scp命令:

SET cfolder=c:\temp\%currentdate%
scp -r [email protected]:/opt/logs/test.log %cfolder%\test_K1B.log

上面的问题是它不断要求输入密码。有没有办法自动执行此命令而无需输入用户名和/或密码?

由于我是唯一运行该命令的人,并且它将在我的本地机器上,所以我不介意将用户名/密码组合保存在文本文件中。

另一个问题是,我没有服务器上的写入权限。我只能读取和复制文件。另外,我不想登录服务器,造成混乱。

我的目的是将其设置为一个自动脚本,执行从远程服务器到临时目录的文件复制。

答案1

您可以使用WinSCP 脚本。WinSCP 支持在其脚本中提供密码(尽管它也支持公钥认证)。

winscp.com /ini=nul /command ^
    "open sftp://username:[email protected]/" ^
    "get /remote/path/* C:\local\path\" ^
    "exit"

WinSCP GUI 可以生成批处理文件模板喜欢你这样。

(我是 WinSCP 的作者)

答案2

C:\Users\ching\proj\fdGlIfFix\src\BP>pscp PS104T ching@moscow_host:/home/ching/tmp/
ching@moscow_host's password:
PS104T                    | 44 kB |  44.4 kB/s | ETA: 00:00:00 | 100%

C:\Users\ching\proj\fdGlIfFix\src\BP>pscp -i c:\users\ching\random.ppk PS104T ching@moscow_host:/home/ching/tmp/
PS104T                    | 44 kB |  44.4 kB/s | ETA: 00:00:00 | 100%

这是你想要的吗?试试 PuTTY 的 pscp 及其密钥生成器

http://www.chiark.greenend.org.uk/~sgtatham/putty/

假设您的远程服务器信任您的 Windows,即已将生成的公钥部署到您的远程服务器,您可以指定您的私钥而不是输入密码。

答案3

我刚刚查了一下 ssh scp......因为我听说 scp 功能非常有限。

尝试 SFTP。

从谷歌总结的一个链接说“SFTP 是一种类似于 FTP 的文件传输协议,但使用 SSH 协议作为网络协议”和“SCP 仅用于传输文件,不能执行其他操作,例如列出远程目录或删除文件,而 SFTP 可以执行这些操作”

好吧,SSH 允许您自动登录(参见 ssh-copy-id),因此只要您可以自动使用 SSH,您就应该能够正常使用 SFTP。

答案4

SET cfolder=c:\temp\%currentdate%

scp -p linuxpwd -r [email protected]:/opt/logs/test.log %cfolder%\test_K1B.log

您可以使用此-p选项来输入密码。这不是安全的方法,但正如您所说,您可以这样做。  

相关内容