首页 > 技术文档 > Linux > SSH免密登录的原理
2017
12-06

SSH免密登录的原理

Linux SSH免密登录的原理:就是在Server端存放一个Client有访问权限的身份认证,具体方法是在Client上用ssh-keygen命令生成一对公/私钥,私钥放在每一个Client,公钥上传到Server端。这样我们每次想要从Client操作Server端的时候,凭借保存好的私钥就能直接通过认证,实现免密登录了。

下面以CentOS为例,Server(192.168.1.11),Client(192.168.1.12),现想Client通过ssh免密码登录到Server。

1. 在Client上生成公/私钥对
# ssh 192.168.1.12 -p 22
# ssh-keygen -t rsa -P ”
-P ” 就表示空密码,这个命令会在/root/.ssh目录下下生成私钥id_rsa和公钥id_rsa.pub。

SSH免密登录的原理 - 第1张  | ZAOPERATION

2. 把Client的id_rsa.pub复制到Server端下
# scp -P 22 /root/.ssh/id_rsa.pub root@192.168.1.11:/root/.ssh/id_rsa.pub

3. Server端把从Client上复制的id_rsa.pub添加到/root/.ssh/authorzied_keys,并修改权限为600
# cat id_rsa.pub >> /root/.ssh/authorized_keys
# chmod 600 .ssh/authorized_keys

4. Client登录Server端
# ssh 192.168.1.11 -p 22
Last login: Wed Dec 6 16:31:29 2017 from 192.168.1.12

第一次登录是时要你输入yes,然后Client就可以无密登录Server端了。

总结:Client有私钥,Server端要有Client端的公钥。这个公钥/私钥对Client端产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub),如果想让Server,Client相互无密码登录,那Client上面同样的方式配置即可。

最后编辑:
作者:北街
身高八尺,腰围也是八尺!
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

留下一个回复

你的email不会被公开。

This site uses Akismet to reduce spam. Learn how your comment data is processed.