linux-ssh远程加密连接

SSH(Secure Shell)是一种加密的网络协议,用于确保Linux服务器的远程登录安全。本文介绍了SSH的定义、对称和非对称加密原理,以及如何防止中间人攻击。通过公钥认证实现免密登录,降低了运维负担。还详细讲解了SSH配置文件和最终测试,确保服务器安全。
摘要由CSDN通过智能技术生成

SSH远程加密连接

1.定义

  • ssh是一套网络协议
  • 目的在于保证安全的网络服务以及加密远程登录信息
  • Linux ssh命令是实现ssh协议的一个操作,以sshd服务的形式在linux上运行
  • 对ssh协议管理的开源软件是主流的openssh工具

2.为什么要使用SSH

以前常用的FTP协议、telnet工具进行远程服务器登录,但这些都是明文传输,账号明码以明文暴露在互联网中。安全性低。

为了保证数据传输时的安全性、加密性,出现了2种主流加密方式:

  • 对称加密:使用同一个钥匙进行数据加密、解密
  • 非对称加密:公私钥,公钥是锁,私钥才是钥匙

3.对称加密

4.非对称加密

对称加密只有一个秘钥

非对称加密有一对秘钥。公钥和私钥

除非私钥丢失,否则被破解的可能性极低

加解密流程:

  1. 服务器生成公私钥,公钥加密,私钥解密
  2. 客户端发送连接请求
  3. 服务器收到请求,发回公钥
  4. 客户端收到公钥,发送数据使用公钥加密
  5. 服务器收到数据,使用私钥解密

5.中间人攻击

对于非对称加密,客户端怎么保证自己收到的公钥来自于目标服务器呢?

也就是说,如果黑客拦截了客户端发送的请求,发回自己伪造的公私钥中的公钥,解密客户端发送的账户密码信息,借以攻击服务器怎么办?

所以一定要保证目标服务器的正确性,方法:

  1. 基于口令的服务器验证

    [root@admin ~]# ssh root@10.0.0.101
    The authenticity of host '10.0.0.101 (10.0.0.101)' can't be established.
    ECDSA key fingerprint is SHA256:5UTMlsiNBeHUdk1FODU9BAkpt9ysnRrYfTTJG69oCGM.
    ECDSA key fingerprint is MD5:22:c7:f6:0b:6d:f1:8b:ee:6c:da:5a:10:80:2d:a5:14.
    Are you sure you want to continue connecting (yes/no)? 
    这是一段ssh首次连接返回的信息,说的是无法确认目标服务器的真实性,但是已知该主机的指纹信息:5UTMlsiNBeHUdk1FODU9BAkpt9ysnRrYfTTJG69oCGM
    
    接下来需要验证这个指纹信息,是否正确:
    [root@admin ~]# ssh-keyscan -t ecdsa 10.0.0.101 |ssh-keygen -lf -
    # 10.0.0.101:22 SSH-2.0-OpenSSH_7.4
    256 SHA256:5UTMlsiNBeHUdk1FODU9BAkpt9ysnRrYfTTJG69oCGM 10.0.0.101 (ECDSA)
    
    对比两个指纹信息,看看是否同一台机器。
    
    确认是同一台机器之后,可以输入yes,接着输入密码进行登录了
    
  1. 重要配置文件

    放在家目录下的.ssh目录中,如果没有做过秘钥生成,是这个状态:

    [root@service ~]# cd ~/.ssh/
    [root@service .ssh]# ls
    known_hosts
    

    如果生成过秘钥,是这个状态:

    [root@admin ~]# cd ~/.ssh/
    [root@admin .ssh]# ls
    authorized_keys  id_rsa  id_rsa.pub  known_hosts
    

    当客户端收到服务器的公钥信息,就会存放在known_hosts文件中。

    服务器会将客户端的公钥信息存放在authorized_keys中

    id_rsa是私钥信息

    id_rsa.pub是公钥信息

6.登录Linux服务器的方式

1.基于口令(账户密码)登录:

  • 需要记住复杂密码
  • 如果机器太多,难以管理

2.基于公钥认证登录

  • 免密登录,减少运维负担

流程:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ReXOnR8B-1662827754098)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220831163654928.png)]

公钥登录文字流程:

(1) 客户端发送自己的公钥给服务器,写入到服务器authorized_keys中;

(2) 服务器收到客户端连接请求后,在自己的authorized_keys中进行匹配,如果存在该客户端的公钥,就生成一个随机数值R,再利用客户端的公钥对R进行加密,等到一个加密后的公钥(R),发往客户端;

(3)客户端收到后,利用自己的私钥解密,得到随机数R,再结合随机数R与当前连接会话的key,采用MD5加密方式,生成摘要Digest1,发往服务器验证;

(4)服务器采用相同算法,使用MD5加密R和会话key,得到Digest2;

(5)服务器对比Digest1和Digest2是否一致,一致则验证通过,客户端登录服务器。

7.免密登录实战

  1. 客户端本地生成一对公私钥

    ssh-keygen -t rsa -P ‘’

    [root@client .ssh]# ssh-keygen -t rsa -P ''
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值