SSH SCP本地文件到终端Mac Os X中的Remote

Jam*_*mes 85 ssh terminal command-line scp

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

我在SSH帐户上拥有完整的"sudo"访问权限,因此复制过程中不会出现任何问题.我尝试过以下方法:

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

sudo scp magento.tar.gz user@xx.x.x.xx/var/www/
Run Code Online (Sandbox Code Playgroud)

这要求我输入我的本地密码.然后返回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/
Run Code Online (Sandbox Code Playgroud)

返回相同.

我是否需要在任何地方都包含SSH?

我是否需要先通过SSH连接到该站点?

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

JSc*_*Ced 186

首先,您需要:在IP地址后添加以指示路径如下:

scp magento.tar.gz user@xx.x.x.xx:/var/www
Run Code Online (Sandbox Code Playgroud)

我不认为你需要sudoscp.在这种情况下,它不会影响远程计算机,只会影响本地命令.

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

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

scp magento.tar.gz user@xx.x.x.xx:
Run Code Online (Sandbox Code Playgroud)

然后SSH并移动文件:

ssh user@xx.x.x.xx
sudo mv magento.tar.gz /var/www
Run Code Online (Sandbox Code Playgroud)


小智 18

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

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

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

scp /path/to/your/local/file remoteUser@some_address:/home/remoteUser/Documents
Run Code Online (Sandbox Code Playgroud)

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

ssh remoteUser@some_address
sudo mv /home/remoteUser/Documents/file /var/www
Run Code Online (Sandbox Code Playgroud)