zoukankan      html  css  js  c++  java
  • 浅谈远程登录时,ssh的加密原理

    登录方式主要有两种:

    1、基于用户密码的登录方式:

     

    加密原理:

     

    当服务器知道用户请求登录时,服务器会把自己的公钥发给用户,ssh会将服务器的公钥存放在客户端的~/.ssh/known_hosts文件下, 用户会根据服务器给它发的公钥进行加密,加密好好之后返回给服务器,服务器用自己的私钥解密,如果密码正确,则用户会成功登录到服务器上。

    如果服务器改变了自己的公钥,客户端想要登录时必须删除自己~/.ssh/known_hosts文件下的旧内容,重新获取服务器新的公钥。只要你知道服务器上的用户和密码,就可以成功登录到远程服务器上。

               命令格式: # ssh user@ip

               在你第一次登录时,界面上会出现如下图的情形:

     Are you sure you want to continue connecting (yes/no)?

    它会给你提示:你确定你要继续链接吗?,这时,你输入yes就好。接下来会让你输入密码,只要正确输入就可成功登录。

     

    2、基于密钥的登录方式:

    加密原理:

     

    你自己事先得创建一对密钥,把自己的公钥放在你需要登录的服务器上。当客户端需要请求密钥验证登录服务器时,服务器收到请求后,服务器就用公用密匙 加密一段随机字符串并把它发送给客户端。客户端收到加密后的随机字符串之后就可以用客户端的的私钥加密再把它发送给服务器,如果服务器上你事先存放的公钥 解密成功则证明用户是可信的,直接允许登录,不再要求密码。

    获取自己密钥对的命令格式:$ ssh-keygen

    运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。

    命令完成后,在~/.ssh/目录下会生成两个新文件:id_rsa.pub和id_rsa。前者存放你自己的公钥,后者存放你自己的私钥。

    然后将自己的公钥传到服务器上,该命令格式为:$ ssh-copy-id user@ip

    成功登录后,重启服务器ssh服务:   $ systemctl  restart  ssh.service

    接下来就可以远程操控服务器了。

  • 相关阅读:
    openssh升级到openssh-7.5p1踩坑
    office online server部署和简单操作
    aspnetmvc和aspnetcoremvc的一些区别
    office web app server部署和简单操作
    PHP之cURL
    认识PHP的全局变量
    认识Linux系统/etc/hosts
    git学习——stash命令(4)
    Linux netstat命令
    phpstorm+xdebug
  • 原文地址:https://www.cnblogs.com/qlqwjy/p/7825332.html
Copyright © 2011-2022 走看看