ssh服务登录原理与配置

前言

非对称加密是在认证用户连接的时候使用的,对称加密是在用户连接之后开始传输数据的时候加密数据的

一、基于口令的认证(用户名密码)

在这里插入图片描述
1.客户端请求连接;
2.服务端将公钥发送到客户端(需要用户同意,公钥保存在用户家目录下 的.ssh/known_hosts);
3.客户端使用公钥加密自己的密码;
4.服务端收到客户端用公钥加密的密码以后用私钥进行解密;
5.使用解密的密码进行验证,验证没问题登录成功。
在这里插入图片描述
注:但是要确认公钥是所需要连接的服务器发出的,有坏人会进行中间人攻击,利用它自己的公钥发送给用户,用户使用了坏人的公钥加密密码,这样坏人解密以后就知道了用户的密码,然后就用用户的密码去连接真正的服务器。

二、基于公钥的认证(免密登录)

1.客户端要首先生成一对密钥(公钥和私钥)

2.把客户端的公钥需要你手动放到服务器上面(要手动的放到服务器,首先得知道这个服务器),这里就已经确保服务器是可信的。放到服务器的用户家目录的~/.ssh/authorized_keys

3.客户端请求服务器

4.服务器收到客户端的请求之后,先生成随机数random_server, 使用客户端放在authorized_keys这个文件中的公钥对随机数进行加密pubkey(random_server)发送给客户端

5.客户端有公钥和私钥,客户端收到这个加密的数据pubkey(random_server), 客户端使用私钥进行解密拿到random_server使用MD5(hash) 对random_server和sessionkey(会话密钥,在密钥交换步骤产生的)加密形成一个摘要digest1发送给服务器

6.服务器接收到digest1, 然后服务器本身自己使用之前协商过的MD5算法,自己也知道random_server, 也知道会话密钥sessionkey也是使用MD5算法对random_server sessionkey进行加密形成摘要digest2,最后去比较digest1 和 digest2是否相等,如果相等,登录成功,如果不相等,登录失败。
在这里插入图片描述

三、禁止用户登录和修改端口

配置文件/etc/ssh/sshd_config
PermitRootLogin设置no为不允许root用户登录,设置为yes为允许root用户登录
在这里插入图片描述

设置端口号为10086,如果修改配置文件后重启失败可能是selinux影响,可以关闭selinux解决
在这里插入图片描述

客户端不验证指纹StrictHostKeyChecking ask   (ssh_config文件)
密码生成工具:pwgen -cnBs1 7 3
踢出登录的用户:pkill -kill -t pts/1

四、免密登录具体操作

本机IP192.168.68.178
服务器IP192.168.68.181(需要被登录的机器)

ssh-keygen #生成公钥与私钥
ssh-copy-id -p 2222  zhangsan@192.168.68.181 #将公钥传到需要被登录的机器,端口号修改过2222,默认是22

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值