通过 SSH 将文件从服务器传输回客户端

通过 SSH 将文件从服务器传输回客户端

我通过 ssh(linux)或 putty(windows)登录到远程服务器。我想从远程 bash 提示符将文件复制回我的原始计算机(因为方便)。我知道我可以在我的计算机上启动 FileZilla 或 WinSCP 并复制文件,但我想知道如何从远程 bash 提示符执行此操作。

我知道我可以使用另一个 ssh 链接通过 pscp 复制文件:

pscp server.file localuser@local:/local_path

但是如果客户端没有运行 openssh 服务器,则无法使用。

我发现我的服务器有一些变量,如 SSH_CLIENT、SSH_CONNECTION 等。是否可以使用这些信息来编写这样的命令?

copy_from_server server.file local.file

其中 server.file 是位于服务器上的文件(copy_from_server 运行的 bash 提示符的本地文件),而 local.file 是应复制文件的客户端计算机上的目标位置。

我想要一个适用于 Windows 和 Linux 的解决方案,但我也愿意接受仅适用于 Linux 或仅适用于 Windows 的解决方案。

编辑: 类似问题:

答案1

在您的ssh会话中(不是PuTTY)按下Enter~C即可在本地机器上输入命令行。

在 shell 中,您可以通过在命令前加上前缀来运行该命令!

$ ssh> !scp <user@server:file> <local path>

一旦文件被复制,命令提示符将退出,您将返回到会话,而ssh无需重新输入您的凭据。

您需要PermitLocalCommand=yes/etc/ssh_config客户端)才能使其工作。

答案2

您可以使用 rsync 来实现这一点。在互联网上查找 rsync 命令的示例。以下是示例:

rsync -av -e ssh /var/www/your-site.com/ VPS_IP:/var/www/your-site.com/

我是在阅读有关 Wordpress 迁移的文章时发现这一点的: http://bit.ly/1pGp5cw

相关内容