ssh是linux系统中的一个远程连接工具,也是一种网络协议,通过各种加密算法达到安全连接的效果。若能使用ssh连接到另外一台机器上,我们就可以认为是安全的。本节主要介绍的是ssh连接的原理以及ssh免密连接的原理。


一、ssh连接原理

1、环境介绍

    两台linux服务器

    分别安装ssh服务,并启动

  2、原理以及过程

    在A上使用ssh连接B机

    • A向B发送连接请求
    • B收到请求后,将自己的公钥发给A
    • A收到公钥后,用公钥加密B的登陆密码,生成加密密文,发送给B
    • B收到加密密文后,用自己的私钥解密,得到解密信息,然后与B的登陆密码做比较,正确则允许A登陆。            

    

二、ssh免密登陆

  1、环境介绍

    A/B两台装有ssh的linux机器

    在A机器上生成秘钥对

    将A的公钥加入到B机器上指定位置

    介绍一下~/.ssh/目录下的几个文件:

1、id_rsa          生成的秘钥

2、id_rsa.pub        生成的公钥

3、authorized_keys     存放远程连接主机的公钥,一行一个公钥,权限为600

4、know_hosts        (该文件不会立刻生成)存放被连接主机的公钥,下次连接时会核对公钥是否一致,若不一致,则发出相应的警报,作用是避免安全攻击,比如说DNS劫持等。
若发现异常会显示下图的提示,只要删除know_hosts文件里冲突的公钥即可。

  

 可通过以下命令实现秘钥对的创建与免密登陆的操作:

    此时,便可以免密连接了。

  2、免密连接原理及过程

    • A向B发送连接请求,并带上自己的公钥
    • B收到A的公钥,检查机器上的授权列表是否包含有A的公钥,若存在,再生成一个随机数,使用公钥加密,生成加密密文发送给A
    • A收到加密密文后,用私钥机密,得到的结果发送给B
    • B收到A发来的结果,与之前生成的随机数作比较,一致则允许A连接    

  

ssh连接的原理的更多相关文章

  1. Linux实战教学笔记24:SSH连接原理及ssh-key

    目录 第二十四节 SSH连接原理及ssh-key讲解 第1章 SSH服务 1.1 ssh介绍 1.2 知识小结 第2章 ssh结构 2.1 SSH加密技术 第3章 ssh服务认证类型 3.1 基于口令 ...

  2. ssh连接原理介绍( 无密码连接登录的原理)

    SSH(Secure  Shell)一种在不安全网络上提供安全远程登录及其它安全网络服务的协议.由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x.(SSH 2.x的客户程序是不能 ...

  3. ssh连接失败,排错经验

    一.场景描述 ssh连接服务器,发现连接失败,但是对应服务器的ip能够ping通. 场景: [root@yl-web ~]# ssh root@10.1.101.35 ssh_exchange_ide ...

  4. ssh连接失败,排错经验(转)

    一.场景描述 ssh连接服务器,发现连接失败,但是对应服务器的ip能够ping通. 场景: [root@yl-web ~]# ssh root@10.1.101.35 ssh_exchange_ide ...

  5. 用xshell ssh连接测试服务器时候出的问题

    问题还原:用ssh连接测试服务器 给我结结实实报了个错 FBIwarning: ------------------------------------------------------------ ...

  6. SSH secure shell 原理与运用

    转: http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 作者: 阮一峰 日期: 2011年12月21日 SSH是每一台Linux ...

  7. 关于 ssh 连接较慢的解决办法

    1. 概述 使用 ssh 软件连接 linux 时, 会碰到很慢的情况 2. 场景 概述 ssh 连接很慢 大概步骤 使用 xshell6 免费版, 连接 主机 一个小等待, 弹出 用户名 输入框 输 ...

  8. 使用并发 ssh 连接来提升捞日志脚本执行效率

    问题背景 公司有个简单粗暴的日志服务,它部署在多台机器实例上,收集的日志记录在每台机器本地硬盘,写一个小时自动切换日志文件,硬盘空间写满了自动回卷,大约可以保存两三天的历史数据.为什么说它粗暴呢?原来 ...

  9. Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

    第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...

随机推荐

  1. objc_msgSend method_getTypeEncoding 与 @encode

    struct objc_method { SEL _Nonnull method_name                                 OBJC2_UNAVAILABLE; cha ...

  2. ES6学习笔记--class,extends,super

    ES6引入了class(类)的概念.新的class写法让对象原型的写法更加清晰.更像面向对象编程的语法,也更加通俗易懂. class Animal{ constructor(){ this.type ...

  3. Good Article Good sentence HDU - 4416 (后缀数组)

    Good Article Good sentence \[ Time Limit: 3000 ms\quad Memory Limit: 32768 kB \] 题意 给出一个 \(S\) 串,在给出 ...

  4. Good Article Good sentence HDU - 4416 (后缀自动机)

    Good Article Good sentence \[ Time Limit: 3000 ms\quad Memory Limit: 32768 kB \] 题意 给出一个 \(S\) 串,在给出 ...

  5. LeetCode 1062. Longest Repeating Substring

    原题链接在这里:https://leetcode.com/problems/longest-repeating-substring/ 题目: Given a string S, find out th ...

  6. Xamarin.Forms 自定义控件(呈现器和效果)

    Xamarin.Forms 使用目标平台的本机控件呈现用户界面,从而让 Xamarin.Forms 应用程序为每个平台保留了相应的界面外观.凭借效果,无需进行自定义呈现器实现,即可自定义每个平台上的本 ...

  7. netflix flamescope 方便的不同时间范围的火焰图查看工具

    flamescope 是netflix 开源的方便的火焰图查看工具,我们可以选择不同时间范围的数据,方便分析调用链 环境准备 使用docker-compose运行,基于官方的dockerfile 创建 ...

  8. JAVA基础--MySQL

    环境信息 安装环境 :Ubuntu 14 Desktop(桌面版) m安装版本 :MySQL 5.7.23 安装步骤 linux环境下安装过程很简单 三条命令行即可安装完成: 1. sudo apt- ...

  9. 使用List中remove方法时需要注意的问题

    String str1 = new String("1"); String str2 = new String("2"); String str3 = new ...

  10. vs code搭建python和tensorflow环境

    anaconda 安装tensorflow-gpu环境见https://www.cnblogs.com/wintersoft/p/11620267.html vscode中设置python虚拟环境Ct ...