SSH远程登陆复制文件到本地:scp命令

本文介绍如何通过SSH命令从A机登录B机,并利用SCP命令实现B机上的文件复制到A机的过程。具体步骤包括使用root权限进行SSH登录及设置密码验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用命令: scp

  1. /** 用户从A机SSH登陆到B机 */
  2. [user2@host_A]$ssh user1@IP_of_B
  3. user1@IP_of_B's password:

  4. /**  root权限 */
  5. [user1@host_B]$su
  1. password:
  2. /** 从B机复制文件到A机,用命令scp  */
  1. [root@host_B]# scp local_file user1@host_A:/path/to/new/location
  1. user2@host_A's password:




<think>我们正在解决的问题:如何通过SSH本地文件复制到远程服务器。 根据引用内容,特别是引用[2]和引用[4]提到的方法,我们可以使用scp命令来实现。 引用[2]明确指出:scp 本地文件到远程服务器,命令格式为:scp /本地/文件/路径 用户名@远程服务器IP:/远程/目标/路径/ 同时,引用[4]也给出了类似格式:scp username@servername:/path/filename /var/www/local_dir(这是下载,上传则是反过来) 因此,我们可以总结出将本地文件复制到远程服务器的命令格式。 另外,引用[3]提到了SSH密钥认证,但用户当前问题是如何复制文件,所以我们先给出基本方法,然后可以建议使用密钥认证避免每次输入密码。 注意:引用[1]提醒我们,如果已经登录到远程服务器,不能直接在远程服务器上执行scp命令来将远程文件传到本地,因为scp命令需要在本地机器上执行。所以,我们必须在本地终端执行scp命令,而不是在已经SSH登录到远程服务器的终端里。 步骤: 1. 打开本地终端(没有SSH到远程服务器的终端) 2. 执行scp命令 具体命令格式: scp [选项] 本地文件路径 用户名@远程服务器地址:远程目标路径 选项:例如指定端口用-P(注意是大写),递归复制目录用-r等。 示例: 假设本地文件为:/home/user/file.txt 远程服务器IP:192.168.1.100 远程用户名:user 远程目标路径:/home/user/documents/ 则命令为: scp /home/user/file.txt user@192.168.1.100:/home/user/documents/ 执行后,会提示输入远程服务器的用户密码,输入正确密码后,文件开始传输。 如果希望使用非默认SSH端口(比如2222): scp -P 2222 /home/user/file.txt user@192.168.1.100:/home/user/documents/ 如果复制整个目录(递归): scp -r /home/user/folder/ user@192.168.1.100:/home/user/documents/ 注意:如果远程路径是目录,则文件会被复制到该目录下,文件名不变。如果远程路径指定了文件名,则文件会被重命名为指定的文件名。 为了提高安全性并避免每次输入密码,可以配置SSH密钥认证(引用[3]提到的方法)。但这是可选步骤,如果用户需要,可以在相关问题中提出。 因此,我们给出基本步骤和示例,并在最后提出相关问题,其中包含配置SSH密钥认证的问题。 同时,我们也可以给出一些常见问题的解决方法,例如传输中断后如何恢复(使用rsync)等,但用户当前问题是如何复制,所以我们先回答基本方法,然后在相关问题中引导。 注意:在回答中,我们按照要求使用中文,并且对独立公式使用$$...$$,但这里主要是命令,所以用代码块即可。 最后,生成相关问题。</think>### 通过SSH本地文件复制到远程服务器的完整指南 根据引用内容[2][4],使用`scp`命令是最直接的方法。以下是详细步骤: #### 基础命令格式 ```bash scp [选项] /本地/文件/路径 用户名@远程服务器IP:/远程/目标/路径/ ``` #### 操作步骤 1. **打开本地终端** 确保在本地计算机的终端中操作(非SSH登录后的远程终端)[^1] 2. **执行复制命令** 示例:将本地文件复制到服务器家目录 ```bash scp ~/documents/report.pdf user@203.0.113.25:/home/user/ ``` 3. **验证与确认** - 首次连接需验证主机指纹:输入`yes` - 输入远程用户密码(如未配置密钥认证) 4. **传输完成验证** ```bash ssh user@203.0.113.25 ls /home/user/ # 确认文件存在 ``` #### 常用场景示例 1. **复制整个目录**(使用`-r`选项)[^2] ```bash scp -r ~/project_folder user@server:/opt/projects/ ``` 2. **使用非默认端口**(如2222端口) ```bash scp -P 2222 backup.tar.gz admin@example.com:/backups/ ``` 3. **保留文件属性**(时间戳/权限)[^3] ```bash scp -p config.ini user@server:/etc/app/ ``` 4. **压缩传输加速**(适合大文件) ```bash scp -C database.dump user@dbserver:/mnt/backups/ ``` #### 密钥认证配置(免密码传输)[^3] 1. 生成密钥对: ```bash ssh-keygen -t rsa -b 4096 ``` 2. 上传公钥到服务器: ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub user@server ``` 3. 测试免密传输: ```bash scp file.txt user@server:~/ ``` > **传输安全建议**: > - 敏感文件传输前使用`gpg --encrypt`加密 > - 传输后验证文件完整性:`sha256sum 文件`[^3] > - 避免在公共网络传输未加密凭证
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值