秘钥免密码登录linux,Linux SSH免密钥登录

原理图

ea2c2b87d02e168bdaa3fbe95844533b.png

各步骤补充说明如下:

生成证书

客户端生成密钥对。

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

协商交互过程

客户端向目标服务器发送登录请求。在SSH 服务启用了证书验证登录方式后,会优先通过证书验证方式进行登录验证。

目标服务器根据 SSH 服务配置,在用户对应目录及文件中读取到有效的公钥信息。

目标服务器生成一串随机数,然后使用相应的公钥对其加密。

目标服务器将加密后的密文发回客户端。

客户端使用默认目录或 -i 参数指定的私钥尝试解密。

如果解密失败,则会继续尝试密码验证等其它方式进行登录校验。如果解密成功,则将解密后的原文信息重新发送给目标服务器。意思类似于:“看,这是这段话的原文。我能读懂发过来的密文,我拥有服务器的控制权,请让我登录。”

目标服务器对客户端返回的信息进行比对。如果比对成功,则表示认证成功,客户端可以登录。如果对比失败,则表示认证失败,则会继续尝试密码验证等其它方式进行登录校验。

Linux 环境下生成密钥对

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

以任意具有 ssh-keygen 执行权限的用户登录服务器。

使用如下指令,基于 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: 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: 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值