概述
大家都知道ssh命令用于远程登录上Linux主机,但是每次都需要输密码,很麻烦,有没有什么办法是可以不用输密码就登录的呢?也就是怎么实现免密登录,下面分享个之前配置免密登录的例子。
Linux服务器生成密钥
ssh-keygen的命令手册,通过”man ssh-keygen“命令:
![5a8456eb8218ce18739c08996653ddf2.png](https://i-blog.csdnimg.cn/blog_migrate/85b184ed33101ea1418bfbce4f52857a.jpeg)
通过命令”ssh-keygen -t rsa“来生成密钥
![fda0299e90b1ce2638c29c5769b24abc.png](https://i-blog.csdnimg.cn/blog_migrate/79338012a1dd0ee6a1e48ce919daadef.jpeg)
生成之后会在用户的根目录生成一个 “.ssh”的文件夹
![11f06e215331c9d00125bd93668ed9fe.png](https://i-blog.csdnimg.cn/blog_migrate/270a81a6592a47674311ff4c5387e135.jpeg)
进入“.ssh”会生成以下几个文件
![a5f546492b4414a903ba8ef73fe0eef3.png](https://i-blog.csdnimg.cn/blog_migrate/31fe524fe7137a780577389e16b9aa6f.jpeg)
说明:
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
ps:ssh公钥生效需满足至少下面两个条件:
1) .ssh目录的权限必须是700
2) .ssh/authorized_keys文件权限必须是600
配置远程免密登录
原理图:
![fc5deb30e18ea6a6c1a9f170d6712a8b.png](https://i-blog.csdnimg.cn/blog_migrate/b57b7f4819b41645f69829e43ce194c9.jpeg)
这里介绍三种配置方法。
1、通过ssh-copy-id的方式
命令: ssh-copy-id -i ~/.ssh/id_rsa.put
[root@test .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.201 root@192.168.1.201's password: Now try logging into the machine, with "ssh '192.168.1.201'