密钥是什么
密钥是一个非常大的数字,是通过加密算法得到的。对称加密只需要一个密钥,非对称加密需要两个密钥成对使用,分为公钥和私钥。
SSH 密钥登录采用的是非对称加密,每个用户通过自己的密钥登陆。公钥和私钥是一一对应的关系,每一个私钥有且只仅有一个对应的公钥。
密钥登陆的过程
SSH 密钥登录分为以下的步骤:
第一步,手动将客户端的公钥放入远程服务器的指定位置。
第二步,客户端向服务器发起 SSH 登录请求。
第三步,服务器接收到用户 SSH 登录的请求,发送一些随机数据给用户,要求证明自己的身份。
第四步,客户端收到服务器发来的数据,使用私钥对数据进行签名,然后再发还给服务器。
第五步,服务器收到客户端发来的加密签名后,使用对应的公钥解密,然后跟原始数据比较。如果一致,就允许登录。
生成密钥
- 执行命令
ssh-keygen -t rsa
ssh-keygen
用于生成认证密钥,-t
用于指定密钥类型,这里选择rsa
.
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
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:
3b:49:99:4d:fa:29:59:f2:4f:08:32:12:d5:5b:14:93 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| .. .+o |
| . . E. |
| . o. |
| . .* |
| . o S o |
| . + X o |
| * = . |
| o o |
| . |
+-----------------+
出现了 3 此暂停,一般情况都直接按回车,无需设置。
第一次询问密钥生成路径,默认为/root/.ssh/
第二次是公钥是否设置密码保护,无需密码保护直接回车即可。
第三次是再次输入密码,确认密码,直接回车即可。
-
/root/.ssh/
目录下会生成两个文件,id_rsa
和id_rsa.pub
。将id_rsa.pub
复制为authorized.key
, 使用命令cat /root/.ssh/id_rsa.pub >> authorized.key
-
将
authorized.key
文件上传到其他服务器的/root/.ssh
目录下,即可实现免密登录。 -
测试
ssh 192.168.94.6
,只有在第一次的登录的时候会要求输入密码,之后便可直接登录。
192.168.94.6 是你需要访问的另一台服务器的 IP 地址。
总结
SSH 免密登录用于在集群中操作时,进行调试,多台服务器之间进行跳转查看状态。