96

我正在尝试使用 SSH 通过 VPN 将本地文件“magento.tar.gz”从本地计算机复制到远程服务器。这是连接到我在这里用作 xx.xxxx 的虚拟机的内部 IP。

我对 SSH 帐户拥有完整的“sudo”访问权限,因此复制时应该没有任何问题。我尝试了以下方法:

我已经尝试了以下(magento.tar.gz 文件已经在本地根目录中)

sudo scp magento.tar.gz user@xx.x.x.xx/var/www/

这要求我输入我的本地密码。之后返回cp: user@xx.x.x.xx/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz user@xx.x.x.xx/var/www/

返回相同。

我需要在任何地方包含 SSH 吗?

我需要先通过 SSH 连接到站点吗?

旁注:我已经设法通过 SSH 连接到服务器,浏览到目录并创建一个文件夹并使用sudo mkdiretc 删除它,所以我绝对有权限。

4

3 回答 3

211

首先需要:在IP地址后面加上,表示路径如下:

scp magento.tar.gz user@xx.x.x.xx:/var/www

我认为你不需要sudo. scp在这种情况下,它不会影响远程机器,只会影响本地命令。

然后,如果您的user@xx.xxxx 没有写入权限,/var/www那么您需要执行 2 次:

复制到您的主文件夹中的远程服务器(:代表您的远程主文件夹,:subfolder/根据需要使用,或:/home/user/用于完整路径):

scp magento.tar.gz user@xx.x.x.xx:

然后 SSH 并移动文件:

ssh user@xx.x.x.xx
sudo mv magento.tar.gz /var/www
于 2012-08-06T03:26:06.113 回答
19

只是为了澄清 JScoobyCed 给出的答案, scp 命令不能将文件复制到需要管理权限的目录。但是,您可以使用 scp 命令复制到属于远程用户的目录。

因此,要复制到需要 root 权限的目录,您必须首先使用 scp 命令将该文件复制到属于远程用户的目录。接下来,您必须使用 ssh 登录到远程帐户。登录后,您可以使用 sudo mv 命令将文件移动到您选择的目录。简而言之,使用的命令如下:

使用 scp,将文件复制到远程用户帐户中的目录,例如 Documents 目录:

scp /path/to/your/local/file remoteUser@some_address:/home/remoteUser/Documents

接下来,使用 ssh 登录到远程用户的帐户,然后使用 sudo 将文件移动到受限目录:

ssh remoteUser@some_address
sudo mv /home/remoteUser/Documents/file /var/www
于 2014-12-29T17:21:32.870 回答
0

注意你的文件名也没有:。我发现我必须mv blah-07-08-17-02:69.txt no_colons.txt然后scp no-colons.txt server:不要忘记mv回到服务器上。以防万一这是一个问题。

于 2017-07-19T19:11:20.393 回答