Linux SSH免密钥登录

IT
IT
IT
335
文章
1
评论
2020年5月15日14:29:28 评论 1,081 1839字阅读6分7秒

原理图

Linux SSH免密钥登录

 

各步骤补充说明如下:

生成证书

  1. 客户端生成密钥对。
  2. 将公钥信息写入目标服务器、目标账户的配置文件。该操作隐含表示了客户端拥有对目标服务器的控制权。

协商交互过程

  1.  客户端向目标服务器发送登录请求。在SSH 服务启用了证书验证登录方式后,会优先通过证书验证方式进行登录验证。
  2. 目标服务器根据 SSH 服务配置,在用户对应目录及文件中读取到有效的公钥信息。
  3. 目标服务器生成一串随机数,然后使用相应的公钥对其加密。
  4. 目标服务器将加密后的密文发回客户端。
  5. 客户端使用默认目录或 -i 参数指定的私钥尝试解密。
  6. 如果解密失败,则会继续尝试密码验证等其它方式进行登录校验。如果解密成功,则将解密后的原文信息重新发送给目标服务器。意思类似于:“看,这是这段话的原文。我能读懂发过来的密文,我拥有服务器的控制权,请让我登录。”
  7. 目标服务器对客户端返回的信息进行比对。如果比对成功,则表示认证成功,客户端可以登录。如果对比失败,则表示认证失败,则会继续尝试密码验证等其它方式进行登录校验。

Linux 环境下生成密钥对

 

在 Linux 环境下,通常使用系统自带的 ssh-keygen 软件来创建和管理密钥对。请执行如下步骤创建密钥对:

  1. 以任意具有 ssh-keygen 执行权限的用户登录服务器。
  2. 使用如下指令,基于 rsa 算法创建密钥对:
[root@iZwz9b4zp8flnc2qhui3akZ ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
22:28:60:b8:55:60:cc:78:04:4a:78:f4:5a:98:07:cd root@iZwz9b4zp8flnc2qhui3akZ
The key's randomart image is:
+--[ RSA 2048]----+
|oO*+. |
|*.=*E |
|+++ + |
|oo = |
|o o . . S |
| . . . |
| |
| |
| |
+-----------------+

公钥信息需要写入目标服务器、目标用户的配置文件中,默认配置文件为对应用户家目录下 .ssh 文件夹中的 authorized_keys,

[xiaoxin@iZ2zed99h19kmb7fgbjcghZ ~]$ ssh-copy-id xiaoxin@10.0.0.141

验证免密码登录目标机器

[xiaoxin@iZ2zed99h19kmb7fgbjcghZ ~]$ ssh 10.0.0.141
Last failed login: Fri May 22 10:00:00 CST 2020 from 10.0.0.106 on ssh:notty
There was 1 failed login attempt since the last successful login.

Welcome to Alibaba Cloud Elastic Compute Service !

[xiaoxin@iZ2ze8gn2ubhqjk0vx253pZ ~]$ ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:16:3e:2c:e4:60 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.141/24 brd 10.0.0.255 scope global dynamic eth0
       valid_lft 315295084sec preferred_lft 315295084sec

 

继续阅读
  • 我的QQ
  • QQ扫一扫
  • weinxin
  • 我的头条
  • 头条扫一扫
  • weinxin
CentOS 最后更新:2020-5-22
IT
  • 本文由 发表于 2020年5月15日14:29:28
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
谷歌云服务器配置SSH CentOS

谷歌云服务器配置SSH

简介 有Visa卡的网友,可以白嫖一下谷歌云的300美元的体验金活动。 因为最近比较忙,所以没来得及记录下这个过程,大家可以参考这篇文章 那篇文章关于云服务器创建过程写的比较详细,这里就不赘述了。 这...
Eureka同步到nacos Nacos

Eureka同步到nacos

官方介绍文档地址 https://nacos.io/zh-cn/docs/nacos-sync.html 官方安装文档地址 https://nacos.io/zh-cn/docs/nacos-sync...
Eureka指定应用的instanceId为IP CentOS

Eureka指定应用的instanceId为IP

痛点 现在所有的应用指定的是服务器默认机器名称,对查看是哪一个服务IP或者单节点自动剔除服务不友好。 像如上图所示,想知道是哪一个节点,还得点开才能获取IP。 改造 全部改成自动获取服务器IP为ins...
阿里云网盘 CentOS

阿里云网盘

申请内测地址 https://survey.aliyun.com/apps/zhiliao/_o6XQjioM 官网地址 https://www.teambition.com/products/pan...