中文名:安全外壳协议
基于tcp的22号端口
安全性:
- 私密性:对数据进行加密
- 完整性:对数据进行校验
- 不可否认性:不能被冒充
- 共享密钥:临时,和服务器之间约定一个密码
- 数字签名(安全):分为实体的和虚拟的
额外的优点:传输的数据经过压缩,可以加快传输的速度
SSH的安全性由非对称加密算法RSA保证
计算机网络中的加密算法分为对称加密、非对称加密、散列算法三种方式
- 对称加密:加密和解密使用同一个密钥,对称加密的算法有AESSM1SM4DES3DES
- 非对称加密:发送方使用公钥对信息进行加密,接收方收到密文后使用私钥进行解密,例如rsa
- 散列算法:不可逆转,唯一性,例如md5、sha
非对称加密安全性更高,但加解密的效率降低,https和tls1.2握手协议采用了对称加密和非对称加密结合的方式进行密文数据传输
- 客户端在本地构建公钥和私钥,将公钥发送给服务器
- 服务器向客户端发送数据时使用公钥进行加密,客户端收到数据后使用私钥解密
- 客户端向服务器发送数据时使用私钥加密,服务器使用公钥解密
缺点:若公钥在传输中泄露,则黑客可用公钥激活成功教程客户端发送的数据
- 口令验证登录
已知账号口令,即可登录到远程主机,所有传输数据被加密,但不能保证正在连接的服务器的合法性,易受中间人攻击
过程:
服务端提前生成公钥和私钥,当客户端发起登录请求时,服务端将公钥发送给客户端
客户端使用收到的公钥加密用户输入的登录密码,并将密文发送给服务端
服务端使用私钥进行解密,然后将解密后的密码和正确的密码作对比以验证
- 密钥验证登录
- 客户端生成公钥和私钥,将公钥提前部署到服务器上
- 客户端发起连接请求
- 服务器随机生成一个字符串,用被部署的公钥加密后发送给客户端
- 客户端通过私钥解密,将解密后的字符串发送给服务器
- 服务器验证本地字符串和客户端发来的字符串的一致性,若通过则认证成功
ssh_config和sshd_config都是ssh服务器的配置文件,ssh_config是针对客户端的配置文件,sshd_config是针对服务端的配置文件
客户端提前生成密钥对,并将公钥保存在受信任的服务端上的,具体一般是保存在服务器的/etc/ssh/authorized_keys文件中
当客户端发起登录请求时,服务端生成随机字符串R,并使用客户端发来的公钥加密,然后将密文发送给客户端
客户端使用私钥解密之后得到R,然后使用MD5算法对R和提前商量好的SessionKey生成摘要digest1,然后将digest1发送给服务端
服务端作同样的操作得到digest2,然后比较digest1和digest2是否相同
SessionKey是服务端和客户端使用Diffie-Hellman 算法计算得到的
目的:实现两台虚拟机之间互相免密登录
启动两台虚拟机
虚拟机A:(RHEL9.2)192.168.235.129 虚拟机B:(KALI Linux)192.168.235.131
在rhel9上生成密钥对,密钥对默认会在/root/.ssh/目录下生成,公钥文件名为id_rsa.pub,生成之后使用scp命令将该公钥文件上传到另一台主机kali上,scp命令默认上传到对方主机的家目录中
由于kali默认不运行ssh服务,所以首先将ssh服务启动,然后将id_rsa.pub的内容追加到authorized_keys文件中
然后在kali上执行相同的命令生成密钥对并将公钥上传到rhel中,在rhel上将公钥的内容同样追加到authorized_keys中即可实现双向免密登录
验证如下:
到此这篇ssh免密码登陆(ssh 免密码登录)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/40599.html