• SSH登录详解


    1.什么是SSH登录
    SSH是一种网络协议,用于计算机之间的加密登录。
    相比传统的账户密码登录,SSH提供了一种更便捷安全的登录方式。

    2.SSH登录流程
    登录操作如下

    ssh user@host
    

    SSH之所以能保证安全,是因为它采用了公钥加密。
    整个流程如下:
    (1)远程主机收到用户的登录请求,将自己的公钥发给用户
    (2)用户使用这个公钥,将登录密码加密后,发送给远程主机
    (3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录

    3.中间人攻击
    SSH登录本身是安全的,问题在于,如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,
    那么用户很难辨别真伪。因为不像https,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。

    攻击者插在用户和远程主机之间,用伪造公钥,获取到用户的登录面后,再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了,
    这就是著名的“中间人攻击”

    4.口令登录-公钥加密(用户端),私钥解密(远程主机)
    如上图所示,第一次登录时,会提示用户

    The authenticity of host '121.43.230.217 (121.43.230.217)' can't be established.
    ECDSA key fingerprint is SHA256:NfXOYhYDaY7cs57XoMqAS+5D+rG8mKTumqyo+8SCO9o.
    Are you sure you want to continue connecting (yes/no)?
    

    意思是无法验证用户的公钥,是否正确,询问用户是否要继续。
    ECDSA key给出了远程主机公钥的SHA256编码过的值,一般在远程主机的网站会告示公钥的值,
    用户可以将这个公钥和网站上的公钥进行比对,正确则表明是远程主机。
    输入yes之后,系统会将公钥加入到已知的主机列表,如下所示,已知列表中的主机,下次不会再询问。

    Warning: Permanently added '121.43.230.217' (ECDSA) to the list of known hosts.
    

    5.公钥登录-私钥加密(用户端),公钥解密(远程主机)
    使用密码登录,每次都必须输入密码,非常麻烦,好在SSH还提供了公钥登录,可以省去输入密码的步骤。
    公钥登录的流程如下:
    用户将自己的公钥放在远程主机上,登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。
    远程主机用实现储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

    这种方式要求用户提供自己的公钥,如果没有,可以使用ssh-keygen生成一个:

    ssh-keygen
    

    运行之后,会在/root/.ssh/目录下,分别生成公钥和私钥:id_rsa.pub和id_rsa
    输入以下命令,将公钥传送到远程主机,公钥会添加到远程主机/root/.ssh/authorized_keys文件中,公钥登录的设置就完成了。

    ssh-copy-id user@host
    
  • 相关阅读:
    springboot 路由 json
    mybatis-plus 条件构造器 Wrapper
    mybatis-plus 逻辑删除
    mybatis-plus 分页查询
    mybatis-plus 乐观锁
    mybatis-plus 自动填充处理
    mybatis-plus 增删改查(普通)
    mybatis-plus 日志
    mybatis-plus 初识
    React项目如何打包发布及遇到的坑
  • 原文地址:https://www.cnblogs.com/shijingjing07/p/8778731.html
Copyright © 2020-2023  润新知