服务器 master 上生成密钥
ssh-keygen -t rsa
通过执行命令 ssh-keygen -t rsa 来生成我们需要的密钥。
执行上面的命令时,我们直接按三次回车,之后会在用户的根目录下生成一个 .ssh 的文件夹,我们进入该文件夹下面并查看有哪些内容。
我们看到有四个文件,下面分别解释下每个文件是干什么用的。
- authorized_keys: 存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥。
- id_rsa: 生成的私钥文件
- id_rsa.pub: 生成的公钥文件
- known_hosts: 已知的主机公钥清单
远程密钥登录
通过 ssh-copy-id 命令设置。最后一个参数是我们要免密钥登录的服务器 ip 地址。
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.131.167.184
原理
到此,我们的 ssh 免密钥登录就大功告成。下面给大家说说免密钥登录的原理,有兴趣的可以看看。
首先来看下原理图
- ssh 客户端向 ssh 服务器端发送连接请求
- ssh 服务器端发送一个随机的信息
- ssh 客户端使用本地的私钥对服务器端发送过来的信息进行加密
- ssh 客户端向服务器端发送加密过后的信息
- ssh 服务器端使用公钥对该信息进行解密
- 若解密之后的信息和之前发送的信息匹配,则信任客户端,否则不信任。
文章评论