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

  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. codeforces2B.The least round way 题解 动态规划/模拟

    题目出处:http://codeforces.com/problemset/problem/2/B 题目描述 给你一个 \(n \times n\) 的二维数组,它包含的元素都是非负整数.你需要寻找一 ...

  2. sleep usleep nanosleep alarm setitimer使用

    sleep使用的是alarm之类的定时器,定时器是使得进程被挂起,使进程处于就绪的状态. signal+alarm定时器 alarm参数的类型为uint, 并且不能填0 #include <st ...

  3. 上传图片保存到MySql数据库并显示--经验证有效

    以下方法仅供参考,只是介绍下这一种方法而已.欢迎指正!! 前台(image.html):  1<html> 2<head> 3<title>上传图片</tit ...

  4. LightOJ 1123 Trail Maintenance

    题意:n个城市m天.每一天修一条道路,输出当前天数的最小生成树,但是这里有一个条件,就是说最小生成树必须包括全部n个城市,否则输出-1 思路:边数有6000如果每一天跑一次最小生成树的话就接近O(m^ ...

  5. js中的数据类型及常用属性和方法

    JavaScript 字符串 字符串(或文本字符串)是一串字符(比如 "Bill Gates").字符串被引号包围.您可使用单引号或双引号您可以在字符串内使用引号,只要这些引号与包 ...

  6. H3C ACL规则的匹配顺序

  7. grep简介

    grep -ril "xxxxx" .   :查看当前目录下所有文件是否包含指定字符,只输出符合条件的文件名 -r :递归查找 -i:忽略大小写 -l :只输出文件名

  8. java 声明多个泛型类型和通配符

    若一个类中多个字段需要不同的泛型声明,则在声明类的时候指定多个泛型类型即可: 格式: public interface IDAO<PK, T> { PK add(T t); void re ...

  9. Linux 旗标实现

    Linux 内核提供了一个遵守上面语义的旗标实现, 尽管术语有些不同. 为使用旗标, 内核 代码必须包含 <asm/semaphore.h>. 相关的类型是 struct semaphor ...

  10. dotnet 数组自动转基类数组提示 Co-variant array conversion 是什么问题

    在 C# 的语法,可以提供自动将某个类的数组自动转这个类的基类数组的方法,但是这样的转换在 Resharper 会提示 Co-variant array conversion 这是什么问题? 在 C# ...