密钥生成并配置_基于密钥的SSH认证流程

 基于密钥的SSH认证流程。

01

基于密钥的SSH认证流程

  1. Client生成一对密钥,将公钥存放于Server上,私钥自己留着。

  2. Server收到Client的登录请求,生成一个随机字符串并发送给Client。

  3. Client用私钥对字符串进行加密并发送给Server。

  4. Server用公钥解密得到字符串,并和之前发出去的字符串进行比对。

  5. 根据比对结果判断客户端的合法性。

02

开启SSH密钥认证机制

需ROOT用户权限操作

1、编辑配置文件  

vi /etc/ssh/sshd_config

2、开启公钥认证参数

PubkeyAuthentication yes

3、公钥认证文件存放位置

AuthorizedKeysFile      .ssh/authorized_keys

4、控制存放密钥的文件目录权限

chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys

5、重启sshd服务,生效修改的配置

systemctl restart sshd

03

公钥、私钥的生成

方法比较多,确保安全推荐使用本地工具生成的方法,比如openssl、ssh-keygen或者ssh客户端工具生成,这里使用ssh-keygen工具来实现:

直接调用ssh-keygen生成基于rsa加密算法的密钥对,默认存储位置(私钥)~/.ssh/id_rsa和(公钥)~/.ssh/id_rsa.pub

[root@manager ~]# ssh-keygen -t rsa

e8563afccef617aa10f4909faca50f20.png

04

密钥和SSH服务结合

第一步:

追加公钥内容到authorized_keys文件中。

[root@manager ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

第二步:

复制私钥到ssh客户端并导入,用户身份验证的时候使用Public Key。

c00951155f8ff2cd7bec3a13169f54f4.png

第三步:

服务器端/var/log/secure验证结果,会看到类似RSA的记录。

Aug 11 11:00:17 localhost sshd[91292]: Accepted publickey for root from 192.168.8.1 port 6281 ssh2: RSA SHA256:v91KVzojzyfWrtBqfUFX2hgPITOZxAsla7L2lMlNl3EAug 11 11:00:17 localhost sshd[91292]: pam_unix(sshd:session): session opened for user root by (uid=0)

05

结束语

SSH服务端版本,操作系统版本的差异可能会导致配置区别,但是总体思路不变,特别是第二段内容配置影响比较大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值