原因:公司用的是基于密钥登陆,虽然有防火墙等设备,而且不允许root直接登陆和不允许密码登陆。由于公司的网不好,有一次需要拷贝一次2个多G的数据到别的服务器。我当时想的就是scp(虽然也有其它命令工具)但是,我却忘记了现在不允许密码登陆。虽然有其它方式(比如lrzsz或者winscp ftp等),但是如果先下载再上传必然需要太多时间。毕竟走服务器的局域网才是最快,要是走公司,然后再上传,那就太麻烦了。于是看看scp --help发现有一个-i 参数。所以是支持密钥的方式的。仔细研究一番,确实好用,于是,自己写了个文档,和大家分享一下。

[root@node1 ~]# scp --help

usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-iidentity_file]

[-l limit] [-ossh_option] [-P port] [-S program]

[[user@]host1:]file1 ... [[user@]host2:]file2

[root@node1 ~]#

语法详解:

-1246BCpqrv:

-1 强制scp 用协议1

-2 强制scp 用协议2

-4 强制scp用IPV4的网址

-6 强制scp用IPV6的网址

-B 选择批处理模式(防止输入密码)

-C 允许压缩。 标注-C到ssh(1)来允许压缩

-p指定修改次数,连接次数,还有对于原文件的模式

-q把进度参数关掉

-r递归的复制整个文件夹

-v详细方式显示输出

-c cipher:选择cipher来加密数据传输。

-F ssh_config: 指定ssh的配置文件

-I identity_file:   选择被RSA认证读取私有密码的文件。

-I limit:限制传输带宽,也就是速度 用Kbit/s的速度

-o ssh_option:可以把ssh_config中的配置格式传到ssh中。

-P port:   指定ssh端口

-S program:指定一个加密程序。

user@      用户

host1      主机(可以是ip,也可以是域名)

测试环境:

node1:192.168.1.220  centos6.6mini

node2:192.168.1.221  centos6.6mini

node1:

上传文件夹到node2;

scp -P 21386 -r/usr/local/tomcat/ root@192.168.1.221:/root

注意:如果不加-r,会报错

/usr/local/tomcat: not aregular file

如果需重命名,可在远程主机指定位置和文件名即可

scp -P 21386 -r/usr/local/tomcat/ root@192.168.1.221:/root/tomcat1

上传压缩文件到node2

scp -P 21386 -r /usr/local//root@192.168.1.221:/root

将node2文件目录或者压缩文件传输到node1。

scp -P 21386 -rroot@192.168.1.221:/root/tomcat  /root

scp -P 21386 -rroot@192.168.1.221:/root/mysql.tar.gz /root

当然,你也可以从node2上进行操作。

由于上面的操作,总是需要密码,那么接下来做一个ssh互信。

由于我改了默认端口,所以先改回默认22的端口。

一路回车即可!

ssh-copy-id  -i.ssh/id_rsa.pub  root@192.168.1.221

如果需要dns,事先做好dns,或者hosts,再做ssh互信。

测试:

ssh –help

做到上面,基本的ssh已经没有问题了。但是,生产环境,用密钥认证的也不少,那么下面做一个基于密钥验证的。并且禁止root登陆和密码登陆(操作略,过于简单)

删除node2的数据,将node1上的数据,传输到node2上。

由于不允许密码登陆,和不允许root直接登陆。现在是基于密钥登陆,然后切换到root,因此,现在只有用密钥的方式用scp。而且只能上传到密钥用户家目录下。除非在指定的目录相应用户有权限。不过,就是一个scp而已,实现目的即可。

scp -i Identity  -P21386mysql.tar.gz node2@192.168.1.221:/home/node2

scp -i Identity -P21386  -r tomcat2/ node2@192.168.1.221:/home/node2

scp -i Identity -P21386  -r tomcat node2@192.168.1.221:/home/node2

注意:回车提示输入密码。

一个小小的经验,分享给大家。希望和大家多多交流和分享。

QQ:1145507435

邮箱:renzhiyuan666666@vip.qq.com

scp 是我小看了你---基于密钥传输!相关推荐

  1. scp 是我小看了你-基于密钥传输!

    原因:公司用的是基于密钥登陆,虽然有防火墙等设备,而且不允许root直接登陆和不允许密码登陆.由于公司的网不好,有一次需要拷贝一次2个多G的数据到别的服务器.我当时想的就是scp(虽然也有其它命令工具 ...

  2. Linux下基于密钥的安全验证实现方法

    Linux下基于密钥的安全验证实现方法 -------OpenSSH+WinSCP+putty密钥生成器+putty 实验背景: 小诺公司目前已使用Linux搭建了各个服务器(FTP.DNS.Apac ...

  3. 密钥生成并配置_基于密钥的SSH认证流程

    " 基于密钥的SSH认证流程." 01 - 基于密钥的SSH认证流程 Client生成一对密钥,将公钥存放于Server上,私钥自己留着. Server收到Client的登录请求, ...

  4. ssh实现基于密钥方式登录系统

    前言 首先实现基于密钥方式登录系统的原理: 在客户端建立一对密钥对,然后把公钥放在需要访问的目标服务器上,另外,还需要把私钥放在客户端用来登录的用户的家目录下. 当客户端发起登录请求时,会将公钥文件送 ...

  5. 基于密钥的认证机制(ssh)

    网络中的两台服务器需要经常进行通信,而频繁的输入账号和密码既繁琐又不安全,所以需要使用基于密钥的认证,这种使用在服务器集群配置中非常的常用.下面以CentOS服务器系统为例简单介绍下配置方法(服务器必 ...

  6. 实现putty基于密钥的安全登录

    本来在前天晚上就准备写这篇文章的,可由于前天实验一直没有成功,让我伤透了脑筋.结果只能拖到昨天继续研究,终于让我修得正果! 我的问题是,我用puttygen来生成了私钥和公钥,我将公钥文件导入到Lin ...

  7. java socket 传输压缩文件_java基于socket传输zip文件功能示例

    本文实例讲述了java基于socket传输zip文件的方法.分享给大家供大家参考,具体如下: 服务器端程序: import java.io.*; import java.net.*; import j ...

  8. 【重难点】【RabbitMQ 01】消息队列的作用、主流的消息队列、RabbitMQ 基于什么传输消息、RabbitMQ 模型架构、死信队列和延迟队列

    [重难点][RabbitMQ 01]消息队列的作用.主流的消息队列.RabbitMQ 基于什么传输消息.RabbitMQ 模型架构.死信队列和延迟队列 文章目录 [重难点][RabbitMQ 01]消 ...

  9. java udp 流量控制_基于UDP传输协议的实现分析之流量和拥塞控制

    UDP的概念 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种 ...

最新文章

  1. oracle查询不走索引全表扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景-Oracle...
  2. Android 动画小知识点
  3. Xamarin ios 教程 Xamarin跨平台开发 C#苹果应用开发
  4. spring使用注解时配置文件的写法
  5. 【转】软件工程师的年终总结2
  6. linux中wps默认安装目录,centos6.5 安装wps linux
  7. KDD 2017 《ReasoNet: Learning to Stop Reading in Machine Comprehension》论文笔记
  8. 通过 WIFI 用 adb 调试 Android 设备
  9. 【Vue.js源码解析 二】-- 虚拟 DOM
  10. VMware vSAN分布式存储安装配置
  11. dos命令行设置网络优先级_网络安全之木马病毒的防范以及攻击
  12. 怎样用shell计算linux内存,计算Linux内存,CUP,硬盘使用率的shell脚本
  13. flutter git 拉不起来_iOS集成flutter原理及集成打包解决方案
  14. 2.1 Hadoop环境搭建
  15. lintcode 丢鸡蛋
  16. 基于R语言GD包的Risk Map制作(批量生成)
  17. [CEOI2017]Mousetrap
  18. 信息年龄、新鲜度、数据寿命、边缘计算等读书报告
  19. instancetype 与 id for Objective-C
  20. 定时器Timer(一)—— 定时器Timer的使用

热门文章

  1. 明星热图|刘诗诗、倪妮出席品牌活动;王一博、任嘉伦、龚俊等签约新品牌成为代言人...
  2. POJ 1144 Network
  3. 华硕笔记本bios U盘启动问题
  4. OpenGL绘制框架(Win32版)
  5. 股票指标 PHP,怎样将股票指标改为选股指标
  6. Thinkcmf - 微信公众号开发 -1
  7. 日期时间选择器bootstrap(手机适应)
  8. 【SM2证书】签发SM2根证书 (精简、直接)
  9. 用c语言编写匀速直线运动,匀速直线运动知识点总结
  10. 分享一个:批量下载个性化桌面壁纸和各种唯美图片的方法