实现基于密钥登录
Posted 凭栏听枫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现基于密钥登录相关的知识,希望对你有一定的参考价值。
基于密钥的登陆方式
- 首先在客户端生成一对密钥(ssh-keygen)
- 将客户端的公钥ssh-copy-id拷贝到客户端
- 当客户端再次发送一个连接请求,包括ip、用户名
- 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串
- 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
- 得到服务端发过来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
- 服务端接收到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录
实现基于密钥登录
[root@centos7 ~]# ssh-keygen #在客户端生成密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #密钥对存放的位置,默认/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:
SHA256:3XBhit2EIv21mUTpZfj7luvVsE3p/SnKD7Az+S3P0AY root@centos7
The key's randomart image is:
+---[RSA 2048]----+
| . o=o |
| . oo.==.o |
| ..o++oB |
| ..+= . .|
| S..E. .o.|
| + o o=o|
| = o o.o*|
| =.*. .*|
| +==o=o|
+----[SHA256]-----+
[root@centos7 ~]# ssh-copy-id root@10.0.0.208 #将公钥文件远程传输至远程服务器对应用户的家目录,这一步需要输入一个yes,再输入服务器对应用户的登录密码
[root@centos8 ~]# cat .ssh/authorized_keys #服务器端已经可以查看到客户端对应的信息
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZRSI2rR7DxvYnuwaFNV7bTiIidnEIDtIsDAaLAwYN/f8prxhCGEpwXDD+QkrEHqe7UhmkQIfJrfnpe1nEiDWIVhuXMu5Pum/1RfC21+HuoL6Bo/YxlndEmdvRHwJ6cmiXxNql5qN3Drw57RtR1iSq6mGct9HCvfy404jet3Bdx9k28wEWGZWoLDjx2ZJhtPbpC5t2QSM373c8rRbwszycxl2DMoBf+V9N5+9HzBFh3TsfrUWXXzFd1qVZK0OJIRIGFYLfQGaPreXcAwVdiWDTa3sCAdV4rshMpPECRnNn18Aw/+DCkLDr9uO1EEgW8YB8VHu87Xw8Iy3WSU6Ciya9 root@centos7
[root@centos7 ~]# ssh 10.0.0.208 #登录到远程服务器
Last login: Thu May 6 10:50:42 2021 from 10.0.0.1
[root@centos8 ~]# exit
logout
Connection to 10.0.0.208 closed.
以上是关于实现基于密钥登录的主要内容,如果未能解决你的问题,请参考以下文章