一 丶实现无密码的远程管理

  1.生成公钥 私钥
    [root@room9pc14 桌面]# ssh-keygen
    [root@room9pc14 桌面]# ls /root/.ssh/

  2.上传公钥到虚拟机A
    [root@room9pc14 桌面]# ssh-copy-id root@192.168.4.7

  3.上传公钥到虚拟机B
    [root@room9pc14 桌面]# ssh-copy-id root@192.168.4.207

  4.补充在真机上
    [root@room9pc14 桌面]# ssh-add (声明私钥)

二、加密与解密

  对称加密:加密/解密用同一个密钥

  非对称加密:加密/解密用不同的密钥 {公钥(加密)、私钥(解密)}  

  口令认证登录   PasswordAuthentication no|yes
  密钥对认证登录

  对称加密
    DES,Data Encryption Standard

    AES,Advanced Encryption Standard

  非对称加密
    RSA,Rivest Shamirh Adleman

    DSA,Digital Signature Algorithm

  Hash散列技术,用于信息摘要(数据完整性)

    MD5,Message Digest Algorithm 5

    SHA,Secure Hash Algorithm
    特点:
      1. 根据输入的文本(长度不限),生成固定长度(比如128位)的摘要文本

      2. 只要输入的文本不同,则生成的摘要文本也不一样

GPG非对称加密/解密:

GPG介绍:

  GNU Privacy Guard

  最流行的数据加密、数字签名工具软件

例题:

  #useradd usera
  #useradd userb
  #echo 123456 | passwd --stdin usera
  #echo 123456 | passwd --stdin userb

+++++++++++++++++++++++++++

gpg 做对称加/解密

  usera ------ > userb
  发                   接
  加                   解

  #ssh -X usera@localhost
  #head -5 /etc/passwd > a.txt
  #cat a.txt
  #gpg -c a.txt  (提示输入密码)
  # ls a.txt.gpg
  # mv a.txt.gpg /tmp/

  #ssh -X userb@localhost
  #gpg -d /tmp/a.txt.gpg > my.txt (提示输入密码)
  #cat my.txt
+++++++++++++++++++++++++++
gpg 做非对称加/解密

  uesra ------- > userb
  发       接
  加       解
  公钥     私钥

userb
  ssh -X userb@localhost
  1 创建秘钥对(公钥 私钥)
    #rm -rf ~/.gnupg
    #gpg --gen-key
    #ls ~/.gnupg

    pubring.gpg(公钥)  secring.gpg(私钥)

  2 导出公钥
    #gpg -a --export  [真实姓名]  > /tmp/userb.pub

usera
  ssh -X usera@localhost
  1 导入userb用户的公钥
    #rm -rf ~/.gnupg
    #gpg  --import  /tmp/userb.pub
    #ls ~/.gnupg
  2 使用公钥加密明文文件,共享给userb用户
    #tail -5 /etc/passwd > test.txt
    #gpg  -e  -r  [真实姓名]  test.txt
    #ls  test.txt.gpg
    #mv test.txt.gpg   /tmp/
  3 userb用户使用私钥解密共享的加密文件
    #gpg -d /tmp/test.txt.gpg > my2.txt  (提示输入密码,调用私钥的密码)
    #cat my2/tmp/test.txt.gpg

+++++++++++++++++++++++++++++++
gpg 做数字签名(私钥签名 公钥验证签名)
  软件签名与验证过程

    软件官方以私钥对软件包执行数字签名

    用户下载软件包、软件官方的公钥

    以官方公钥验证软件包签名,确保软件完整性
userb 
  #head -2 /etc/passwd > my4.txt
  #gpg -b my4.txt (要求输入私钥密码) //数字签名
  #ls my4.txt.sig
  #mv my4.txt* /tmp/
  #ls /tmp/my4.txt*
  #gpg --fingerprint

usera 
  #gpg --verify /tmp/my4.txt.sig

ssh免密登陆和加密解密的更多相关文章

  1. SSH免密登陆原理及实现

    声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.SSH简介 SSH(Secure Shell)是一种通信加密协议,加密算法包括:RSA.DSA等. RSA:非对称加密算法,其安全性基于极其困难 ...

  2. ssh免密登陆:sshpass -p [passwd] ssh -p [port] root@192.168.X.X

    正文: ssh免密登陆:sshpass -p [passwd] ssh -p [port] root@192.168.X.X

  3. ssh免密登陆配置

    目录 ssh免密登陆 在A工作站上输入 B服务器上输入 登陆 ssh初次登陆询问 1.单次取消 2.ansible中增加链接参数 3.修改ansible配置参数[推荐] 4.修改服务器上的ssh_co ...

  4. Linux Hadoop集群搭建第二步:--------SSH免密登陆

    内容和Linux 搭建 Hadoop集群--Jdk配置相关联 三台虚拟机的操作 Linux SSH免密登陆: 参考网址:http://www.cnblogs.com/999-/p/6884861.ht ...

  5. ssh免密登陆及时间设置

    1.ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa // 在自己主机生成私钥和公钥 2.scp id_rsa.pub centos@s201:/home/centos ...

  6. SSH免密登陆配置过程和原理解析

    SSH免密登陆配置过程和原理解析 SSH免密登陆配置过很多次,但是对它的认识只限于配置,对它认证的过程和基本的原理并没有什么认识,最近又看了一下,这里对学习的结果进行记录. 提纲: 1.SSH免密登陆 ...

  7. [提供可行性脚本] RHEL/CentOS 7 多节点SSH免密登陆

    实验说明: 在自动化部署时,会经常SSH别的机器去操作,然而每次的密码认证却很令人烦躁,尤其是很长的密码,因此SSH免密登陆就显得必不可少: 在机器数目很多的时候,使用更过的往往是Ansible分发并 ...

  8. 使用rsync基于ssh免密登陆进行备份或目录同步

    日常工作中有很多的备份工作,rsync是一个很不错的工具,尝试使用基于ssh免密登陆的方式进行备份,测试成功,是可行且方便的方法,撰文记之,以备后用: 1.A主机root用户对B主机root用户做ss ...

  9. 【Linux】ssh-copy-id三步实现ssh免密登陆

    一.本地机器上使用ssh-keygen产生公钥私钥对 ssh-keygen -t rsa -C "XXXX@163.com" --->执行完会在~/.ssh/下生成公钥私钥对 ...

随机推荐

  1. Python字节码介绍

    了解 Python 字节码是什么,Python 如何使用它来执行你的代码,以及知道它是如何帮到你的.如果你曾经编写过 Python,或者只是使用过 Python,你或许经常会看到 Python 源代码 ...

  2. day6_python之pickle、shelve序列化和反序列化

    pickle.shelve,python私有,支持所有python数据类型 一.pickle dic={'name':'egon','age':18} print(pickle.dumps(dic)) ...

  3. 随机线性网络编码的C语言实现,实现可靠传输:原理(1)

    线性方程组,大家都不陌生吧.来一组 A11 *X1 + A12 *X2 + A13 *X3 + A14 *X4 =Q1 A21 *X1 + A22 *X2 + A23 *X3 + A24 *X4 =Q ...

  4. 解决TortoiseSVN中out of date问题的一个方法

    http://blog.csdn.net/freefalcon/article/details/645058 从去年开始,公司的代码管理从CVS转向了subvsersion,后者确实是前者的一个飞跃, ...

  5. JS遍历数组

    for 如果用var会造成变量声明提前等问题for(var i = 1; i <= arr.length; i++){ console.log(arr[i - 1]);} for(let i = ...

  6. 最小生成树prim、

    过年那几天确实没好好学习.在老家闲着也是闲着.可是就是没看书. 回来这几天又一直在弄个人博客.买域名云服务器备案什么的- -. 麻烦死了呢. 在腾讯花1块钱备案了一个网站www.goodgoodstu ...

  7. 洛谷P1809 过河问题 经典贪心问题

    作者:zifeiy 标签:贪心 题目链接:https://www.luogu.org/problem/P1809 我们假设第 \(i\) 个人过河的耗时是 \(t[i]\) ,并且 \(t[i]\) ...

  8. JPA 一对多双向映射 结果对象相互迭代 造成堆栈溢出问题方法

    问题: JPA 在双向映射时,会相互包含对方的实例,相互引用,造成递归迭代,堆栈溢出(java.lang.StackOverflowError). 分析: 在后端向前端传递的时候会将数据序列化,转为j ...

  9. java 集合遍历输出方式

    Iterator:迭代输出 一旦操作集合的遍历输出,首选Iterator接口; ListIterator:Iterator子接口,专门输出List中的元素; Enumeration:古老的输出方式,迭 ...

  10. 2019-10-18-WPF-高速书写-StylusPlugIn-原理

    title author date CreateTime categories WPF 高速书写 StylusPlugIn 原理 lindexi 2019-10-18 21:23:46 +0800 2 ...