如何通过终端将文件复制到另一台机器?

LA_*_*LA_ 51 ssh

我有通过 VMPlayer 运行的 Ubuntu 10.04。我还有另一台机器(华硕 RT-N16 路由器)。我能够使用 telnet 连接到路由器并查看其文件系统。如何将文件从本地机器(文件是/home/user/helloworld-c)复制到路由器(文件夹 */tmp/mnt/discb_1*)?

Pav*_* S. 91

是否有可能通过 SSH 连接?也许您应该考虑“scp”实用程序。很简单,看手册页

man scp
Run Code Online (Sandbox Code Playgroud)

非常基本的用法:

scp remote_user@remote_host:/path/to/remote/file /path/to/local/file
Run Code Online (Sandbox Code Playgroud)

反之亦然:

scp /path/to/local/file remote_user@remote_host:/path/to/remote/file
Run Code Online (Sandbox Code Playgroud)

  • 使用“-r”选项:scp -r user@host:/path/file /path/local。如果有效,请将答案标记为已接受。 (4认同)

小智 15

要将非空目录从远程计算机复制到您的计算机:

scp -r remoteusername@192.168.1.56:/home/vrc/Desktop/www /home/ourusername/Desktop
Run Code Online (Sandbox Code Playgroud)

要复制文件,只需排除该-r选项:

scp remoteusername@192.168.1.56:/home/vrc/Desktop/file1 /home/ourusername/Desktop
Run Code Online (Sandbox Code Playgroud)

要从您的计算机复制到远程计算机,只需在上一个示例中切换位置和目标即可。有关更多信息,请执行man scp


Kal*_*lah 11

另一种方法:(通过 pem 文件)

如果您想使用pem文件并且您是ROOT用户:

1.root用户:

sudo scp -i ~/servers/your-key.pem ~/your-local-source-path/your-local-file.txt root@00.00.00.11:/you-server-destination-path/
Run Code Online (Sandbox Code Playgroud)

注意:服务器IP和目标路径之间的冒号。

如果我无法使用root用户登录,请参阅第 2 步。

2.标准用户:

假设您是ubuntu具有标准权限的用户。

sudo scp -i ~/servers/your-key.pem ~/your-local-source-path/your-local-file.txt ubuntu@00.00.00.11:/home/ubuntu/
Run Code Online (Sandbox Code Playgroud)

这会将文件放在主目录中。然后以标准用户登录远程服务器。并做

sudo su
Run Code Online (Sandbox Code Playgroud)

你会切换到root用户。然后将文件移动到目标目录

mv /home/ubuntu/your-local-file.txt /you-server-destination-path/your-local-file.txt
Run Code Online (Sandbox Code Playgroud)

我经常遇到这个问题,因此分享一种完成工作的替代方法!