ssh服务登录原理与配置

文章目录

  • 前言
  • 一、基于口令的认证(用户名密码)
  • 二、基于公钥的认证(免密登录)
  • 三、禁止用户登录和修改端口
  • 四、免密登录具体操作

前言

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

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

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

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

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是否相等,如果相等,登录成功,如果不相等,登录失败。
ssh服务登录原理与配置_第3张图片

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

配置文件/etc/ssh/sshd_config
PermitRootLogin设置no为不允许root用户登录,设置为yes为允许root用户登录
ssh服务登录原理与配置_第4张图片

设置端口号为10086,如果修改配置文件后重启失败可能是selinux影响,可以关闭selinux解决
ssh服务登录原理与配置_第5张图片

客户端不验证指纹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  [email protected] #将公钥传到需要被登录的机器,端口号修改过2222,默认是22

你可能感兴趣的:(Linux,ssh,运维)