Linux系统的ssh rsa免密登录的两种方式及原理(精)
Posted 如何在5年薪百万
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统的ssh rsa免密登录的两种方式及原理(精)相关的知识,希望对你有一定的参考价值。
一、 本文目的
大部分文章只知道一种方式,用的时候市场困惑。本文
着重说明白秘钥的使用两种方式,其他知识已经很多自行搜索即可。
二、生成秘钥对
生成rds秘钥对,这个可以在任何一台生成,理解原理
cd ~/.ssh && ssh-keygen -t rsa -N "" -f id_rsa -q
得到两个文件,公钥和私钥都是相对于执行命令的这台linux服务器而言的
id_rsa 私有
id_rsa.pub 公钥
三、A免密登录B的两种方式
比如A要登录B服务器
方式一,把A的公钥pub文件,放在B的~/authorized_keys文件中
打开A的id_isa.pub的文件,复制并粘贴如文件的最下方,不要带多余的空格和其他符号
~/authorized_keys文件中
authorized_keys文件里保存了其他人的公钥列表,代表这些服务器可以直接登录自己。
通过ssh 就可以直接登录
ssh root@B的ip
命令执行过程:A会用自己的.ssh/目录下的私钥文件,例如 id_rds进行加密登录。而B会用自己authorized_keys保存的公钥内容进行解密,如果解密成功。就认为A是合法用户,让A免密登录。注:所以A的目录下必须有id_rsa文件。
方式二、下载B的私钥文件,生成pem文件
新建一个pem文件,把B的private内容粘贴进去
利用ssh命令即可登录
ssh -i b的私钥.pem文件 root@B的ip地址
你把你的私钥文件(原本只能B自己知道),证明B足够信任,可以直接登录
命令执行过程:A会用 -i指定的私钥文件(这里就是B的私钥文件)加密,B在自己的authorized_keys中用自己的公钥文件解密。如果成功,就认为A是合法用户,让A免密登录。
两者如何选择
- 第一次的时候可以使用方式二
- 建议使用方式一、更加安全。无论谁拥有过B的私钥都可以直接登录,这样太不安全了。二方式一,B可以随时移除A的公钥,就可以随时拒绝访问。
总结
使用秘钥免密登录一直对公钥和私钥混淆,两者确实有很多相似的地方。上面两种方式都可以登录,登录的过程主要是利用rsa进行身份识别,所以使用公钥和私钥都可以达成目的。两者加密的信息本身就是互认的。
上面两种方式本质一样,无非是到底用那一对公钥和私钥加解密
以上是关于Linux系统的ssh rsa免密登录的两种方式及原理(精)的主要内容,如果未能解决你的问题,请参考以下文章
关于linux免密登录的配置及ssh客户端基于私钥文件的登录