深度解读SSH免密登录

我们都知道SSH是LINUX下很常用的命令,用来远程登陆其他的LINUX系统。如果只有一台,那也只是一个密码 ,也到还好。但如果是一个集群,每次都输入密码登录,难免会拉低效率。

​ 但事实上SSH其实是支持两种登录方式,除了常用的密码登录,还有就是密钥登录。今天就探究密钥登录到底是怎么回事。

​ 为了帮助理解,我画了下面一张图

​ 其实SSH服务同样可以按照C-S架构来进行划分,这里把我们当前的主机抽象为客户端A,把远程的服务器抽象为服务器B

​ 我们首先在本地A主机中生成一对密钥,包括一个私钥和一个公钥。私钥可以理解为用来识别自己身份的表示,公钥可以理解为公开的通行证、

​ 举个通俗的例子,可以把私钥理解为身份证,公钥理解为读卡器,读卡器识别身份证成功,则放行通过。

​ 回到话题,A生成一队密钥,然后讲公钥复制到B的授权列表,当A再次登录B时,会将私钥带过去和公钥验证。当B的授权队列中存在A时,就通过验证。

​ 命令如下:

ssh-keygen

该命令在A中生成一对密钥,如下图:

一直回车就好了,最后生成一个示意图

​ 查看密钥所在目录的文件按结构:

ll .ssh

如下图:

其中id_rsa 文件是私钥,.pub文件就是公钥。我们可以通过scp命令直接远程拷贝到服务器主机B的授权目录下,也可以通过ssh快捷部署

这里选择快捷部署

命令如下:

ssh-copy-id 119.45.207.226

这就在主机B上部署了A的公钥,在这之后就可以通过SSH从A免密登录到B

​ 如果指定用户,需要在服务器地址前用用户名和@链接,在指定用户时,需要输入一次该用户的密码。需要注意的是这个用户和密码是服务端B主机的用户和对应的密码,如果不指定用户,会默认以A主机正在登录的用户名尝试登录B,如果B中存在同名的主机,就可以登陆成功,若不存在,则不能正确登录

命令如下:

ssh-copy-id root@B主机地址   #root表示部署到B主机的root用户

如下图:

这就将密钥部署到了我的远程服务器B的root用户上,再次登陆时,只需要用ssh 加上远程服务器的地址就能直接登录,如下图:

可以看到成功登陆了

再看B中的文件结构

段落

看到authorized_keys文件末尾很明显的标识了yq@ubuntu,这就是我的客户端主机A

ssh免密登录,就这么简单!

深度解读SSH免密登录的更多相关文章

  1. linux(十)配置ssh免密登录实现

    知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识.备注:ssh是用于远端登入.执行ssh指令开启终端机阶段作业 ...

  2. 【Linux】ssh免密登录

    一.ssh免密配置 ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例.有机器A(192.168.1.155),B(192.168. ...

  3. Ubuntu如何配置SSH免密登录

    前言 在搭建hadoop集群时,需要主机和副机之间实现SSH免密登录 一.环境准备 1.ubuntu两台 二.安装SSH 1.首先检测一下本机有没有安装SSH服务,如果没有任何打印说明未安装 sudo ...

  4. linux 远程ssh免密登录

    写在前面 先说说需求: 我们平时开发.运维操作linux过程中经常需要实现将远程文件拷贝到本地或者本地文件拷贝到远程:执行远程命令等操作:这个时候建立ssh免密登录应该是一个比较好的选择: 原理 在l ...

  5. linux服务器ssh免密登录

    环境:两台服务器,Park01.Park02,配置ssh免密登录 在Park01执行:ssh-keygen 然后一直回车 生成节点的公钥和私钥,生成的文件会自动放在/root/.ssh目录下   然后 ...

  6. (11)ssh免密登录配置

    ***在Linux命令行中登录到另一台虚拟机(需要用到ssh协议) Linux中默认有ssh的服务器端和客户端,客户端的名字就叫ssh 前提是当前使用的用户名在待连接的虚拟机中存在 格式:  ssh ...

  7. linux上ssh免密登录原理及实现

    因为我的服务器集群需要回收日志到中央进行统一处理,所以需要建立ssh互信关系实现免密登录.关于ssh的使用大家可能都很熟悉了,我们今天主要来讲下ssh连接和免密登录的原理. scp 传输文件 scp( ...

  8. Linux的SSH免密登录认证过程研究

    一.先看下SSH免密登录使用到的工具和生成的文件 工具:ssh-keygen用于生成秘钥文件,其中秘钥分为公钥和私钥.ssh-copy-id用于复制公钥文件到被控制机. 文件:ssh-keygen生成 ...

  9. Linux 双向 SSH 免密登录

    原理 双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录.双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他所有 ...

随机推荐

  1. MimeMessageHelper代码发邮件时,通过客服端登陆到邮箱,在已发送邮件里没有已经通过代码发送的邮件

    MimeMessageHelper代码发邮件时,通过客服端登陆到邮箱,在已发送邮件里没有已经通过代码发送的邮件, 这个问题很奇怪,这样的话不能看到通过代码发送的邮件历史记录,所以只好借助秘密抄送了,抄 ...

  2. 升级shiro1.6版本后导致附件上传失败,浏览器返回400错误

    最新shiro发布了一个漏洞,凡是jar包在1.6版本的都会出现该漏洞,要修复该漏洞只能升级到shiro1.6版本 但是如果项目中url使用了;jsessionid这种方式的话 就会导致上传失败,浏览 ...

  3. num_duilib之TabBox用法(21)

    介绍 本文将介绍 使用 TabBox的用法 更多用法,请参考源码 TabBox.h 文件 文件中定义了公有接口,其中包括,添加tab页下的控件,删除.设置TabBox的属性 其中,我常用的有:GetC ...

  4. 【LeetCode】169. Majority Element 解题报告(Java & Python & C+)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 思路 hashmap统计次数 摩尔投票法 Moore ...

  5. 【LeetCode】242. Valid Anagram 解题报告(Java & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 字典统计词频 排序 日期 [LeetCode] 题目地址:ht ...

  6. MCU变量加载过程

    前言 在开发mcu代码的时候经常会有些疑惑,变量是怎么在编译之后进入单片机的ram区的呢,特别是在使用keil开发的时候.后来在接触gcc编译器和自研的mcu后,终于明白了这个问题.实际上变量编译后被 ...

  7. 【操作系统】Linux bash常用函数路径配置

    临时方法:export PATH=/usr/bin:/usr/sbin:/bin:/sbin长期方法:1.    vi /etc/profile2.    在最后插入并保存:    export PA ...

  8. Normalized Cuts and Image Segmentation

    目录 概 主要内容 求解 相似度 总的算法流程 skimage.future.graph.cut Shi J. and Malik J. Normalized cuts and image segme ...

  9. JPEG原理详解 (转载)

    JPEG算法解密 by jinchao   图片压缩有多重要,可能很多人可能并没有一个直观上的认识,举个例子,一张800X800大小的普通图片,如果未经压缩,大概在1.7MB左右,这个体积如果存放文本 ...

  10. 元宇宙(metaverse)中文社区-工程实践

    欢迎访问元宇宙中文社区,在这里大家可以提问,回答,分享,诉说,一起构建一个元宇宙社区. 2021年"元宇宙"的这个词的火热程度在业内绝对不亚于疫情,趁着这个热度,本文记录了如何搭建 ...