转载自公众号:未闻Code

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

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

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

图片

<figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;">ssh.png</figcaption>

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

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

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

回到话题,A生成一对密钥,然后将公钥复制到B的授权列表,当A再次登录B时,会将私钥带过去和公钥验证。当B的授权队列中存在A时,就通过验证。(kingname 提示:这里有点小小的不准确,如果私钥是传到服务器去验证的,那岂不是中间人可以在中间拦截私钥了?实际上,ssh 发起请求的时候,服务器会给客户端发送一个随机字符串,客户端收到以后,用私钥进行加密,再传给服务器。服务器再用公钥解密,确认是自己之前发送的随机字符串,说明身份认证通过。整个过程中,私钥是不可能在网络中传播的。注意,RSA 加密是公钥加密私钥解密,而RSA身份认证是私钥加密公钥解密。要区分开。)

命令如下:

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免密登录,就这么简单!

原文地址:https://mp.weixin.qq.com/s/GcCqvBaRR07_VPnwVdyY5A


http://www.taodudu.cc/news/show-1490436.html

相关文章:

  • Python解析access数据库(mdb文件或者accdb文件)
  • 根据excel批量归类文件
  • 2013年蓝桥杯题集C本科B
  • 最高的奖励 贪心
  • 蓝桥杯2013年省赛C/C++大学组 C/C++
  • 非常可乐 BFS
  • 牛客寒假算法基础训练营3
  • 蓝桥杯2014年省赛C/C++ 本科B组
  • DeBruijin DFS
  • 牛客寒假算法基础训练营5
  • Being a good boy in the spring festival NIM博弈
  • Problem F. Grab The Tree博弈
  • 牛客寒假算法基础训练营6
  • 还是畅通工程 最小生成树
  • 食物链 并查集
  • 蓝桥杯2015 C语言大学B组 C/C++
  • STL常用函数总结-vector
  • STL常用函数总结-stack
  • STL常用函数总结-queue+priority_queue
  • STL常用函数总结-map
  • STL常用函数总结-set
  • 畅通工程再续 最小生成树
  • Minimum Inversion Number 线段树
  • 2015年C语言组混搭 C/C++
  • 蓝桥杯 2016年C语言组大学B组 C/C++
  • Aizu ITP2_6_A 二分
  • Hihocoder 1142 三分
  • Tr A 矩阵快速幂
  • 蓝桥杯2016年C/C++ 混搭
  • CodeForces - 801C Voltage Keepsake 二分

深度解读SSH免密登录相关推荐

  1. ssh免密登录配置(两行命令搞定)

    最简单的ssh免密登录的配置 1.准备工作 2.命令行操作 3.互相免密登录 1.准备工作 确保两台服务器的用户名字相同,这里以用户名是username,服务器A要免密登录到服务器B为例子.注意:以下 ...

  2. ssh免密登录linux服务器

    Ssh免密登录 sshd服务 sshd简介: SSH 密钥为登录 Linux 服务器提供了更好且安全的机制.运行 ssh-keygen 后,将会生成公私密钥对.你可以将公钥放置到任意服务器,从持有私钥 ...

  3. SSH免密登录(内含批量配置脚本)

    原文地址:itweknow.cn/detail?id=6- ,欢迎大家访问. 在我们的集群环境搭建过程中可能会很需要SSH免密登录,互相之间传文件只需要一个SCP命令,连密码都不用输,很方便.那么这篇 ...

  4. Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误

    25. 集群搭建 25.1 HADOOP集群搭建 25.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据 ...

  5. 【Git1】指令,分支,ssh免密登录

    文章目录 1.init/add/commit/pull/push,status/diff/log/reflog,reset/checkout/clone:工缓归 2.分支操作:git branch - ...

  6. idea集成gitlab使用ssh免密登录

    网上有很多介绍ssh免密登录的文章,具体步骤如下: 1. 生成SSH Key ssh-keygen -t rsa -C "your_email@example.com"  默认会在 ...

  7. ssh免密登录配置方法及配置

    ssh免密登录配置方法及配置 直接上步骤,记我们本机为机器A,而机器B.机器C等是我们的服务器,我们要配置的是A到B.C等的 ssh 免密登录. 1 在机器A上生成秘钥对 ssh-keygen 会得到 ...

  8. 关于设置不同linux主机之间ssh免密登录简易方法

    2019独角兽企业重金招聘Python工程师标准>>> 在linux日常中,经常会有ssh链接其他主机服务器的action,也学习过大家日常用配置ssh免密登录的方法. 小编今天在这 ...

  9. Hadoop2——SSH免密登录功能配置

    SSH免密登录功能配置 我有三台虚拟机,其中一台主机,两台克隆机 192.168.159.130 hadoop01 (主机) 192.168.159.128 hadoop02 192.168.159. ...

最新文章

  1. 坚持教学与科研相结合
  2. 【图解篇】斯达康XV6700刷机超完整教程!!!
  3. Linux服务器---流量监控bandwidthd
  4. js正则表达exec和match的区别(转)
  5. php 流量,PHP 流量控制语句的顶替语法
  6. (60)UART外设驱动发送驱动(五)(第12天)
  7. C# Winform播放多媒体文件 [AudioVideoPlayback ]
  8. ASP.NET 中的 SQL Server 应用服务数据库角色和视图
  9. nyoj810 贪心的嘿嘿(想弄死这出题的)
  10. 像计算机科学家那样思考,如何像计算机科学家一样思考?(C语言篇)
  11. .pptx 文件密码破解
  12. NPOI 多个Excel合并为一个Excel
  13. 树莓派安装第三方操作系统
  14. 程序员如何快速了解和掌握一门新技术
  15. som神经网络聚类简单例子_神经网络学习及其模型
  16. Cstyle的UEFI导读: UEFI的N种实现及差别
  17. 2018工控网络安全发展趋势分析
  18. 自然语言处理常见算法与模型
  19. 可以定制专属的外卖跑腿配送系统吗?OEM定制是什么?
  20. SA-用calibre做xrc时用的cellmap文件怎么设置

热门文章

  1. JAVA入门[1]--安装JDK
  2. CentOS6上安装Flash Player
  3. 【转】ASP.net MVC自定义错误处理页面的方法
  4. Asp.net主题(theme)和皮肤(skin)的使用
  5. 夯实Java基础(二十)——JAVA正则表达式
  6. 【概率论】3-4:二维分布(Bivariate Distribution)
  7. 跑步与读书都废掉了...工作目前也在换新的.
  8. 【网络安全工程师面试合集】—Web安全攻防技术演化
  9. python-多线程共享内存
  10. numpy元素特定条件查找过滤