Linux SSH免密钥登录

IT
IT
IT
401
文章
1
评论
2020年5月15日14:29:28 评论 3,071 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美元的体验金活动。 因为最近比较忙,所以没来得及记录下这个过程,大家可以参考这篇文章 那篇文章关于云服务器创建过程写的比较详细,这里就不赘述了。 这...
Teambition 网盘与阿里云盘数据合并说明 CentOS

Teambition 网盘与阿里云盘数据合并说明

前言 Teambition 团队是阿里巴巴的一个创新产品团队,除了你熟悉的 Teambition App,「阿里云盘」也是我们的作品,它们都属于阿里云正在打造的新一代「云服务」。 过去几个月,我们投入...
CentOS8安装Jenkins CentOS

CentOS8安装Jenkins

简述 Jenkins 是最流行的,开源的,基于 Java 的自动化服务器,它允许你很容易的设置一个持续集成和持续发布的管道。 持续集成 (CI)是一个 DevOps 实践。当团队成员正常提交代码到版本...

您必须才能发表评论!