首页 > Linux基础 > Linux > SSH免密登录的原理
2017
12-06

SSH免密登录的原理

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

下面以CentOS为例:

Server (192.168.1.11)

Client (192.168.1.12)

现在需要从Client (192.168.1.12)通过ssh免密码登录到Server (192.168.1.11)。

1. 在Client上生成公/私钥对
# ssh 192.168.1.12
# ssh-keygen -t rsa -P ”

-P ” 表示空密码,这个命令会在/root/.ssh目录下下生成私钥和公钥。

id_rsa.pub //公钥
id_rsa //密钥

 

SSH免密登录的原理 - 第1张  | 有用学堂

 

 

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 内容添加到authorzied_keys 认证文件中

# cat id_rsa.pub >> /root/.ssh/authorized_keys

4. 最后,我们还要修改文件权限
# chmod 600 ~/.ssh/authorized_keys
# chmod 700 ~/.ssh

5. 设置 SSH,打开密钥登录功能
# vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes // root用户能否通过SSH 登录
PasswordAuthentication no //当完成全部设置,并以密钥方式登录成功后,再禁用密码登录

最后,重启 SSH 服务:
# service sshd restart
# ssh 192.168.1.11
Last login: Wed Dec 6 16:31:29 2017 from 192.168.1.12

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

总结:
1. Client有私钥,Server端要有Client端的公钥
2. 这个公钥/私钥在client生成

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

SSH免密登录的原理》有 3 条评论

  1. xing 说:

    来看看,因为,总能学到东西!

  2. 羽中 说:

    经典的知识点,还可以开双重验证更安全

留下一个回复

你的email不会被公开。