ubuntu ssh传输文件——scp

本文详细介绍如何在Linux环境下使用SCP命令通过SSH协议传输文件,包括安装SSH客户端和服务端、配置SSH服务端口、从服务器下载文件及目录、上传文件及目录到服务器等操作,并提供非22端口的解决方案。

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

在linux下一般用scp这个命令来通过ssh协议传输文件。
服务器需安装SSH服务器端openssh-server,客户端需安装SSH客户端openssh-client
ssh-server:sudo apt-get install openssh-server
ssh-client:sudo apt-get install openssh-client
ssh-server配置文件位于/etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如2222。
注:
scp指定端口是大写P,
ssh指定端口是小写p。

1、从服务器上下载文件

scp username@serverip:/path/filename /var/www/local_dir(本地目录)
例如,

scp john@192.168.1.100:~/Desktop/MHN_error_solve ./

ssh默认是22端口,若出现错误ssh: connect to host 192.168.1.100 port 22: Connection refused,说明服务器端的ssh端口不是22了,这时需指定端口了:

scp -P2222 john@192.168.1.100:~/Desktop/MHN_error_solve ./

这里写图片描述

2、上传本地文件到服务器

scp /path/filename username@serverip:/path

例如,

scp -P2222 test.txt john@192.168.1.100:~/

这里写图片描述

3、从服务器下载整个目录

scp -r username@serverip:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)
例如,

scp -P2222 -r john@192.168.1.100:~/mhn ./mhn_copy

这里写图片描述

4、上传目录到服务器

scp -r local_dir username@serverip:remote_dir
例如,

scp -P2222 -r Study john@192.168.1.100:~/Study_copy

这里写图片描述
查看服务器:
这里写图片描述

注:目标服务器要开启写入权限。


参考链接:
1. SSH的详细安装步骤及登录提示:connection refused的解决办法
blog.youkuaiyun.com/jayxujia123/article/details/34125791
2. sshscp 连接远程ssh非22端口的服务器方法
https://wenku.baidu.com/view/965c281da76e58fafab003a2.html
3. 利用ssh传输文件
www.cnblogs.com/jiangyao/archive/2011/01/26/1945570.html

### Ubuntu 中使用 `scp` 命令进行文件传输 #### 安全复制协议简介 `scp`(secure copy protocol)是一种基于SSH协议的命令行工具,用于在本地主机与远程主机之间安全地复制文件或目录。由于采用SSH协议,这确保了数据传输过程中的安全性[^3]。 #### 从本地复制到远程主机 要将本地文件发送给远程Ubuntu服务器上的特定位置,可以按照如下格式构建命令: ```bash scp /path/to/local/file username@remote_host:/path/to/remote/directory ``` 例如,如果想要把名为`service.yaml`的服务配置文件上传至IP地址为`192.168.19.128`的目标机器,并放置于该用户的家目录下,则应执行这样的指令: ```bash scp service.yaml cjs@192.168.19.128:/home/cjs/ ``` 对于整个文件夹的传送,只需加上参数 `-r` 来实现递归操作即可。比如向位于公网下的某台云服务器批量推送项目源码时可这样写: ```bash scp -P 22 -r D:\web_server root@101.200.182.140:/root/RTCWorkSpace/samples ``` 这里指定了SSH连接使用的端口号为默认值22;而实际应用中可能遇到非标准端口的情况,这时就需要通过大写字母开头的大写形式 `-P` 参数来指定其他端口号码[^1]。 #### 从远程主机复制到本地 当需要下载远端资源保存到当前计算机里时,只需要调整上述语法结构稍作变动就可以完成反向的数据迁移工作: ```bash scp username@remote_host:/path/to/remote/file /path/to/local/directory ``` 假设现在打算获取一台运行着Ubuntu系统的嵌入式设备——DE10-Nano开发板里的某个日志记录下来供后续分析之用,那么应该这样做: 先确认好目标硬件已经接入互联网并能正常响应网络请求之后再继续下一步动作。接着利用串行控制台登录进去尝试键入`scp`看看能否得到帮助提示信息从而验证环境是否准备好支持这项功能[^2]。一旦确定无误便可以用下面这条语句取得所需资料: ```bash scp cjs@192.168.19.128:/home/cjs/config.json . ``` 此处在结尾处加了个`.`表示希望接收下来的文档存放在当前位置之下[^5]。 #### 可选参数概览 除了基本的功能外,还有几个常用的附加选项可以帮助优化用户体验: - `-p`: 保持原始文件属性不变; - `-q`: 关闭进度条显示以减少屏幕输出量; - `-v`: 开启详细的诊断消息以便排查可能出现的问题。 这些都可以根据个人喜好灵活组合运用起来满足不同场景的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值