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

SSH免密登录的原理

Linux SSH免密登录的原理:假设S为服务器端,C为客户端,我们需要在S端存放有访问权限的C端的身份认证。即,在C端以ssh-keygen命令生成一对公/私钥,私钥放在C端,公钥上传到S端。这样,每次从C登录S的时候,C端凭借着私钥让服务器端认证自己。

下面以CentOS为例,有机器S(192.168.1.11),C(192.168.1.12),现想C通过ssh免密码登录到S。

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

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

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

3. S端把从C端复制的id_rsa.pub添加到.ssh/authorzied_keys
# cat id_rsa.pub >> /root/.ssh/authorized_keys
# chmod 600 .ssh/authorized_keys //authorized_keys的权限要是600

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

第一次登录是时要你输入yes,现在C端可以无密码登录S端了。

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

最后编辑:
作者:北街

身高八尺,腰围也是八尺!

捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

留下一个回复

你的email不会被公开。