Linux SSH 免密登录
本篇我们来 看看 Linux 免密登录原理 以及实际操作

概述
什么是 Linux SSH 我认为每个人都应该免密登录。 多少听过 或者操作过,那你真的理解整个免密登录的过程吗?
Linux SSH 免密登录 就是 不输入密码 就可以通过SSH 远程连接到 服务器了
1.SSH 免密登录原理
通过上述图解过程 大致可以分为以下步骤,A 作为Client端 B作为 Server端
- A -> B A免密登录B
- 在A上生成公钥私钥。
- 复制公钥server B,要重命名成authorized_keys(从英文名中知道含义)
- Server A向Server B发送连接请求
请求包括 A的 用户名和IP。 - Server B得到Server A的信息后,
在authorized_key中查找,如果有相应的用户名和IP,则随机生成一个字符串,并用Server A加密并发送公钥Server A。 - Server A得到Server B发消息后,使用
解密私钥,然后发送解密的字符串Server B。Server B对比生成,如果一致,则允许免登录。
2.SSH 免密登录实验
假设我有服务器 它的 ip 是 139.198.189.160 ,我现在想通过 本机免密登录本机
2.1 生成公钥私钥
-f 指定文件 -t 类型 -C 指定邮箱
ssh-keygen -t rsa -f ~/.ssh/id_rsa_test -C "zhangqiang@163.com"
可以看到 已经生成了 公钥 id_rsa_test.pub 和 私钥 id_rsa_test
2.2 把公钥copy到 服务器 ~/.ssh/authorized_keys
可以追加到 ~/.ssh/authorized_keys 文件的末尾
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQD5jfom6Qts6tjpOAZwde2tWK9/MrKqCKgOd4Y/YILVD4nnvhs2X15N0VyWyZrVrqrUpyG7l3jEspbQxJHNJ9k80NbJqW5EyRernXCpoFICmUnfJnu3VYyBxyKxa1wa7/1xNKq3EEdVGmR2rcajVljfyo4ErPP6NrTbxCa0Do9mmXh2XiEdvrTogSud1c1c/ d7WOwiosD y9ZxErwZkqBvxfimMTjfsrxTvZ8CIdhAS2THZeuVtFgpxS3TVdt1oXw/BOYsE8kjgZCZ/g0Sbm7w4ZHhKqvO 3q3tSarZyUnkEpeHLWztoH7GUaDjJrqrImlwubt9dzhlV446uefYXxq7WBVKbrGkhSkGN6pKp5xnSkQw0zGAPzieSslvd 0LLPGJ0uIqSq9h5TVGDMVcN2NmASBPB/e4jYzUBTr6hvhvRWPq7HoGSBUoeLYtQiNjUxc8SVSBkofJEoydsTzwlP8/yqBp4mGqyZgSRoBRALflXpCkNBa1HNiRujazxFsSU= zhangqiang@163.com
2.3 测试登录
此时发现 它仍然需要我们输入密码 为什么?因为这个时候 你的 私钥还没有 ssh-add 加入高速缓存
2.4 ssh-add 私钥
ssh-add命令是添加特殊密钥ssh-agent高速缓存
注意 私钥的权限必须是 600 ,否则会报错 ,可以通过 chmod 600 ~/.ssh/id_rsa_test 更改
2.5 再次测试登录
可见已成功免密登录。
总结
本文主要讲解 Linux SSH 免密登录的原理和实际操作 ,注意 本地 私钥的权限必须是 600 ,否则会报错 无法 ssh-add 进入高速缓存。
欢迎光临 个人博客 Johnny小屋