7,SSH scp 命令

scp 命令

scp是 SSH 提供的一个客户端程序,用来在两台主机之间加密传送文件(即复制文件)。

简介

scp是 secure copy 的缩写,相当于cp命令 + SSH。它的底层是 SSH 协议,默认端口是22,相当于先使用ssh命令登录远程主机,然后再执行拷贝操作。

scp主要用于以下三种复制操作。

  • 本地复制到远程。
  • 远程复制到本地。
  • 两个远程系统之间的复制。

使用scp传输数据时,文件和密码都是加密的,不会泄漏敏感信息。

基本语法

scp的语法类似cp的语法。

$ scp source destination

上面命令中,source是文件当前的位置,destination是文件所要复制到的位置。它们都可以包含用户名和主机名。

$ scp user@host:foo.txt bar.txt

上面命令将远程主机(user@host)用户主目录下的foo.txt,复制为本机当前目录的bar.txt。可以看到,主机与文件之间要使用冒号(:)分隔。

scp会先用 SSH 登录到远程主机,然后在加密连接之中复制文件。客户端发起连接后,会提示用户输入密码,这部分是跟 SSH 的用法一致的。

用户名和主机名都是可以省略的。用户名的默认值是本机的当前用户名,主机名默认为当前主机。注意,scp会使用 SSH 客户端的配置文件.ssh/config,如果配置文件里面定义了主机的别名,这里也可以使用别名连接。

scp支持一次复制多个文件。

$ scp source1 source2 destination

上面命令会将source1source2两个文件,复制到destination

注意,如果所要复制的文件,在目标位置已经存在同名文件,scp会在没有警告的情况下覆盖同名文件。

用法示例

(1)本地文件复制到远程

复制本机文件到远程系统的用法如下。

# 语法
$ scp SourceFile user@host:directory/TargetFile# 示例
$ scp file.txt remote_username@10.10.0.2:/remote/directory

下面是复制整个目录的例子。

# 将本机的 documents 目录拷贝到远程主机,
# 会在远程主机创建 documents 目录
$ scp -r documents username@server_ip:/path_to_remote_directory# 将本机整个目录拷贝到远程目录下
$ scp -r localmachine/path_to_the_directory username@server_ip:/path_to_remote_directory/# 将本机目录下的所有内容拷贝到远程目录下
$ scp -r localmachine/path_to_the_directory/* username@server_ip:/path_to_remote_directory/

(2)远程文件复制到本地

从远程主机复制文件到本地的用法如下。

# 语法
$ scp user@host:directory/SourceFile TargetFile# 示例
$ scp remote_username@10.10.0.2:/remote/file.txt /local/directory

下面是复制整个目录的例子。

# 拷贝一个远程目录到本机目录下
$ scp -r username@server_ip:/path_to_remote_directory local-machine/path_to_the_directory/# 拷贝远程目录下的所有内容,到本机目录下
$ scp -r username@server_ip:/path_to_remote_directory/* local-machine/path_to_the_directory/
$ scp -r user@host:directory/SourceFolder TargetFolder

(3)两个远程系统之间的复制

本机发出指令,从远程主机 A 拷贝到远程主机 B 的用法如下。

# 语法
$ scp user@host1:directory/SourceFile user@host2:directory/SourceFile# 示例
$ scp user1@host1.com:/files/file.txt user2@host2.com:/files

系统将提示你输入两个远程帐户的密码。数据将直接从一个远程主机传输到另一个远程主机。

配置项

(1)-c

-c参数用来指定文件拷贝数据传输的加密算法。

$ scp -c blowfish some_file your_username@remotehost.edu:~

上面代码指定加密算法为blowfish

(2)-C

-C参数表示是否在传输时压缩文件。

$ scp -c blowfish -C local_file your_username@remotehost.edu:~

(3)-F

-F参数用来指定 ssh_config 文件,供 ssh 使用。

$ scp -F /home/pungki/proxy_ssh_config Label.pdf root@172.20.10.8:/root

(4)-i

-i参数用来指定密钥。

$ scp -vCq -i private_key.pem ~/test.txt root@192.168.1.3:/some/path/test.txt

(5)-l

-l参数用来限制传输数据的带宽速率,单位是 Kbit/sec。对于多人分享的带宽,这个参数可以留出一部分带宽供其他人使用。

$ scp -l 80 yourusername@yourserver:/home/yourusername/* .

上面代码中,scp命令占用的带宽限制为每秒 80K 比特位,即每秒 10K 字节。

(6)-p

-p参数用来保留修改时间(modification time)、访问时间(access time)、文件状态(mode)等原始文件的信息。

$ scp -p ~/test.txt root@192.168.1.3:/some/path/test.txt

(7)-P

-P参数用来指定远程主机的 SSH 端口。如果远程主机使用默认端口22,可以不用指定,否则需要用-P参数在命令中指定。

$ scp -P 2222 user@host:directory/SourceFile TargetFile

(8)-q

-q参数用来关闭显示拷贝的进度条。

$ scp -q Label.pdf mrarianto@202.x.x.x:.

(9)-r

-r参数表示是否以递归方式复制目录。

(10)-v

-v参数用来显示详细的输出。

$ scp -v ~/test.txt root@192.168.1.3:/root/help2356.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/47526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STC89C51单片机】定时器/计数器的理解

目录 定时器/计数器1. 定时器怎么定时简单理解(加1经过了多少时间)什么是时钟周期什么是机器周期 2.如何设置定时基本结构相关寄存器1. TMOD寄存器2. TCON寄存器 代码示例 定时器/计数器 STC89C51单片机的定时器和计数器(Timers and Counter…

【BUG】已解决:NameError: name ‘XXX‘ is not defined

已解决:NameError: name ‘XXX‘ is not defined 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开发者社…

Harmony 状态管理 @Local 和 @Param

Harmony 状态管理 Local 和 Param Local 背景 Local 是harmony应用开发中的v2版本中 对标**State**的状态管理修饰器,它解决了 State 对状态变量更改的检测混乱的问题: State 修饰的状态变量 可以是组件内部自己定义的State 修饰的状态 也可以由外部父…

路径规划 | 基于DQN深度强化学习算法的路径规划(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 DQN路径规划算法 基于深度强化学习算法的路径规划 matlab2023b 栅格环境,走迷宫,可以通过窗口界面方便观察交互过程,代码注释详尽。 程序设计 完整源码和数据私信博主回复基于DQN深…

Vue学习---vue cli 项目创建

使用的编辑工具webStorm 创建例子: hello vue create hello 选择 vue3 进行创建 运行 npm run serve 测试访问:http://localhost:8080 改动内容重新编译: npm run build dist 目录就是编译后的可运行内容

1分钟带你了解苹果手机删除照片恢复全过程

在日常使用苹果手机时,我们可能会不小心删除掉一些重要的照片,这让人非常烦恼。那么苹果手机怎么恢复删除的照片?下面小编将会向大家介绍苹果手机恢复删除的照片的方法,帮助大家轻松找回你丢失的照片。 一、利用“最近删除”文件夹…

ChatGPT:为什么计数排序需要进行累加操作

ChatGPT:为什么计数排序需要进行累加操作 第一种写法 private static void countSort() {int[] MaxMin findMaxMin();int max MaxMin[0];int min MaxMin[1];int[] counts new int[max - min 1];for (int num : nums) {counts[num - min];}int index 0;for (i…

甲骨文面试题【动态规划】力扣377.组合总和IV

给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 示例 1: 输入:nums [1,2,3], target 4 输出:7 解释&#x…

【Linux】详解加锁实现线程互斥

一、多线程不加线程互斥可能会引发的问题 下面是一个抢标逻辑。抢票为什么会抢到负数:假设当票数为1时,此时四个进程的判断条件tickets都大于0,都会进入抢票操作,第一个进程抢完票以后tickets0并写回内存,第二个进程再…

Xcode进行真机测试时总是断连,如何解决?

嗨。大家好,我是兰若姐姐。最近我在用真机进行app自动化测试的时候,经常会遇到xcode和手机断连,每次断连之后需要重新连接,每次断开都会出现以下截图的报错 当这种情况出现时,之前执行的用例就相当于白执行了&#xff…

Adobe XD中文设置指南:专业设计师的现场解答

Adobe XD是世界领先的在线合作UI设计工具。它摆脱了Sketch、Figma等传统设计软件对设备的依赖,使设计师可以随时随地使用任何设备打开网页浏览器,轻松实现跨平台、跨时空的设计合作。然后,为了提高国内设计师的使用体验,Adobe XD如…

爬虫(二)——爬虫的伪装

前言 本文是爬虫系列的第二篇文章,主要讲解关于爬虫的简单伪装,以及如何爬取B站的视频。建议先看完上一篇文章,再来看这一篇文章。要注意的是,本文介绍的方法只能爬取免费视频,会员视频是无法爬取的哦。 爬虫的伪装 …

C++类与对象(补)

感谢大佬的光临各位,希望和大家一起进步,望得到你的三连,互三支持,一起进步 个人主页:LaNzikinh-CSDN博客 文章目录 前言一.默认成员函数二.static三.友元四.匿名对象总结 前言 类的默认成员函数,默认成员…

linux centos limits.conf 修改错误,无法登陆问题修复 centos7.9

一、问题描述 由于修改/etc/security/limits.conf这个文件中的值不当,重启后会导致其账户无法远程登录,本机登录。 如改成这样《错误示范》: 会出现: 二、解决 现在知道是由于修改limits.conf文件不当造成的,那么就…

Android-- 集成谷歌地图

引言 项目需求需要在谷歌地图: 地图展示,设备点聚合,设备站点,绘制点和区域等功能。 我只针对我涉及到的技术做一下总结,希望能帮到开始接触谷歌地图的伙伴们。 集成步骤 1、在项目的modle的build.gradle中添加依赖如…

p19 C语言操作符详解

算术操作符 1.除了%操作符之外&#xff0c;其他的几个操作符可以作用于整数和浮点数。 2.对于/操作符如果两个操作数都为整数&#xff0c;执行整数除法。而只要有浮点数值型的就是浮点除法。 3.%操作符的两个操作数必须为 整数。返回的是整除之后的余数。 #include<std…

计算机毕业设计-基于Springboot的养老院管理系统-源码程序文档

项目源码&#xff0c;请关注❥点赞收藏并私信博主&#xff0c;谢谢~ 本系统开发采用技术为JSP、Bootstrap、Ajax、SSM、Java、Tomcat、Maven 此文章为本人亲自指导加编写&#xff0c;禁止任何人抄袭以及各类盈利性传播&#xff0c; 相关的代码部署论文ppt代码讲解答辩指导文件…

SpringBoot以及swagger的基本使用

1、SpringBoot是什么&#xff1f; 一种快速开发、启动Spring的框架、脚手架 遵循“约定优于配置”的思想&#xff0c;使得能够快速创建和配置Spring应用 2、SpringBoot的核心特性 自动配置&#xff0c;一些依赖、默认配置都预设好了&#xff0c;减少了配置量起步依赖&#x…

表格竖向展示

最近在做手机端web页面&#xff0c;页面中需要有个表格来显示数据&#xff0c;但是由于数据太多页面太窄&#xff0c;table展示横向滑动的话感觉很丑。所以让表格竖向显示了 具体页面如下: 实现代码&#xff1a;当然代码里面绑定的数据啊什么的你都可以修改为自己的内容&#…

Vue.js:如何区分页面关闭和刷新?深入解析与实战

Vue.js&#xff1a;如何区分页面关闭和刷新&#xff1f;深入解析与实战 在开发基于Vue.js的单页应用&#xff08;SPA&#xff09;时&#xff0c;我们经常需要处理用户关闭浏览器标签页或刷新页面的情况。虽然这两种操作看似相似&#xff0c;但在某些业务场景中&#xff0c;我们…