如何将文件从 Ubuntu 虚拟机 SCP 到远程 Web 主机?

如何将文件从 Ubuntu 虚拟机 SCP 到远程 Web 主机?

我正在尝试将一些文件从本地 Ubuntu 10.04 虚拟机(在 Windows Vista 平台上运行) SCP 到我的远程 Web 主机。他们那边启用了 SSH,我能够通过命令行登录,所以我知道我使用的是正确的端口号。以下是我尝试过的:

我通过 SSH shell 登录到 Web 主机。然后在命令提示符“remoteuser@remotehost”下输入:

scp -P PORT# -r [email protected]:/~/fromFolder/ ~/public_directory/toFolder/

PORT#实际端口号(例如 22)在哪里

我被要求[email protected]输入密码,但它不接受我通常用于此本地主机帐户的密码。

最佳使用方法是什么scp?我是否应该通过 SSH 登录远程主机,然后scp在命令提示符下运行remoteuser@remotehost$,还是应该从本地主机运行 SCP?

答案1

正确的语法应该是这样的:

scp -P 234 -r ~/local/directory [email protected]:/remote/directory

您显示的代码尝试将文件从通过 localhost 访问的本地计算机复制到直接访问的本地计算机

更新:如果您尝试scp从远程主机上的 ssh 会话发出命令以将文件复制回您的虚拟 Ubuntu,那么在大多数情况下,恐怕这并非不可能 - 即,除非您进行了一些设置(即在主机操作系统中设置桥接适配器,在调制解调器上配置端口转发等),否则很可能无法从外部世界连接到虚拟 Ubuntu 实例。此外,您尝试使用的 IP 地址 - 127.0.0.1 - 是“本地环回”地址,只能从同一台机器访问。即当您在服务器上运行命令时,此 IP 指的是服务器。

所以我仍然建议您使用我上面展示的语法 - 请记住命令中的“本地”表示“您打开终端会话的机器”,而不是您正在使用的物理机器。

例子:如果你想将文件从一台服务器复制到另一台服务器:

# copy a file from local machine to server1.com
user@local-machine# scp ./somefile.txt [email protected]:/home/user2

# copy a file from server1.com to server2.com
user@local-machine# ssh [email protected]
user1@server1# scp ./somefile.txt [email protected]:/home/user2
user@server1# logout

# copy a file from server2.com to server1.com
user@local-machine# ssh [email protected]
user2@server2# ls
    somefile.txt    otherfile.txt
user2@server2# scp ./otherfile.txt [email protected]:/home/user1
user2@server2# logout

# can't copy a file TO local-machine because it's not accessible from internet

相关内容