SSH远程登录的密钥验证授权机制

我们上电脑课时,老师总是能够控制我们的电脑,但是用的却是他自己的电脑,这就是一种远程控制。服务端一般很少有用户界面直接使用,通常是命令控制的,并且一般而言还是远程的。

远程登录一般有两种方式:
密码登录:客户端发出授权请求时,服务端要求输入密码进行验证授权
密钥登录:客户端发出授权请求时,服务端根据事先配置的密钥验证身份并授权

配置步骤:
1、客户端生成密钥对,包括公钥、私钥
2、私钥配置在本地,将公钥发送给服务端
3、服务端将客户端的公钥加入到授权列表

SSH执行原理:
1、客户端发出远程登录请求 用户名@服务端主机名或者IP
2、服务端查看是否有 该用户名 的公钥
3、如果有,服务端生成随机字符串,并用公钥加密(就是随机字符串与公钥作某种运算),发送给客户端
4、客户端利用本地的私钥对字符串解密(逆运算)。
5、客户端将解密后的字符串结果发送给服务端
6、服务端利用解密的字符串与原始字符串匹配,如果相等,验证通过,并授权给客户端。

这里写图片描述

linux的SSH配置步骤:

1、本地生成密钥对

// 文件目录不指定,默认也是当前用户的.ssh目录下
$ ssh-keygen -t rsa (-f ~/.ssh/id_rsa)
// 可以看到由id_rsa 和 id_rsa.pub

2、拷贝公钥到服务端

// scp的意思就是 ssh copy
// 需要密码
$ scp id_rsa.pub servername:/home/fangxin

3、服务端,把公钥添加到授权列表

//服务端,在.ssh目录下创建文件 authorized_keys
$ touch authorized_keys
// 注意:
// authorized_keys的权限必须是600(-rw-------) !!!

注意:authorized_keys文件必须只能是该用户可读可写,其他用户组都是无权的状态才能生效。

$ chmod 600 authorized_keys
// 追加公钥信息到上述文件中
$ cat ~/id_rsa.pub >>authorized_keys

5、从客户端远程登录,如果不要密码,说明配置成功

// 登陆自己就可以测试
$ ssh 服务端名称

模仿上述配置,虽然伪分布式只有单节点,也可以配置本地的SSH协议,启动和关闭hadoop就都不需要密码了

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值