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. react-native 在iOS上使用http链接的图片地址不显示| iOS9 & iOS10 HTTP 不能正常使用的解决办法

    https://segmentfault.com/a/1190000002933776 今天升级Xcode 7.0 bata发现网络访问失败.输出错误信息 The resource could not ...

  2. jasypt-spring-boot

    运行 运行时配置解密秘钥-Djasypt.encryptor.password=在idea中运行 命令行启动和docker中运行参见https://www.cnblogs.com/zz0412/p/j ...

  3. MongoDB shell 1 数据库方法

    方法名 描述 db.cloneDatabase() 从指定主机上克隆数据库 db.currentOp() 显示当前正在进行的操作 db.commandHelp() 返回数据库命令的帮助信息 db.cr ...

  4. 05_配置交换机SSH服务(数通华为)

    1. 网络拓扑: 2. SW1配置:2.1 配置为Access口,vlan 10:[SW1]vlan 10[SW1-GigabitEthernet0/0/1]port link-type access ...

  5. Bzoj 4517: [Sdoi2016]排列计数(排列组合)

    4517: [Sdoi2016]排列计数 Time Limit: 60 Sec Memory Limit: 128 MB Description 求有多少种长度为 n 的序列 A,满足以下条件: 1 ...

  6. java项目里classpath具体指哪儿个路径

    一.classpath路径指什么 只知道把配置文件如:mybatis.xml.spring-web.xml.applicationContext.xml等放到src目录(就是存放代码.java文件的目 ...

  7. JS 将数字字符串数组转为 数字数组 (互换)

    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(String); //结果: ['1', '2', '3', '4', '5', '6', '7', '8 ...

  8. linux操作系统与jvm

    线程调度 https://www.cnblogs.com/xiaotlili/p/3510224.html

  9. js - try..catch详解

    try... catch 1.try...catch和if语句 为什么不用if替换调try...catch? 大部分人都有这样想法 if=>只能判断用户操作 try...catch=>来自 ...

  10. 6条shell小技巧,让脚本显得不再业余【转】

    如何能让自己的shell显得不那么业余?下面6点实践一定有用. 画外音:本篇文章源自Google的一篇实践,抽取了部分1分钟能读完的内容,加入了一些分析. 一.以下面的语句开场 set -o noun ...