• 证书服务(一)非对称加密RSA,ssh使用密钥登录


    简介:

    证书服务是现在安全系统必不可少的安全手段。

    经常用到的有SSL证书加密网站HTTPS,SSH登录的密钥。

    一般是由CA证书中心给各个终端发放证书,然后各个终端

    一:简单的非对称加密

    公钥和私钥的概念

    在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是公开密钥算法(也叫非对称算法、双钥算法)”,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。

    二:由信任的证书中心发放的证书

    证书的概念

    数字证书则是由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名(相当于加盖发证书机 构的公章)后形成的一个数字文件。CA完成签发证书后,会将证书发布在CA的证书库(目录服务器)中,任何人都可以查询和下载,因此数字证书和公钥一样是公开的。实际上,数字证书就是经过CA认证过的公钥。

    三:ssh配置公钥私钥登录服务器

    ssh主要有两种登录方式:第一种为密码口令登录,第二种为公钥登录。
    密码口令登录
      通过密码进行登录,主要流程为:
        1、客户端连接上服务器之后,服务器把自己的公钥传给客户端
        2、客户端输入服务器密码通过公钥加密之后传给服务器
        3、服务器根据自己的私钥解密登录密码,如果正确那么就让客户端登录
    公钥登录
      公钥登录是为了解决每次登录服务器都要输入密码的问题,流行使用RSA加密方案,主要流程包含:
        1、客户端生成RSA公钥和私钥
        2、客户端将自己的公钥存放到服务器
        3、客户端请求连接服务器,服务器将一个随机字符串发送给客户端
        4、客户端根据自己的私钥加密这个随机字符串之后再发送给服务器
        5、服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。

    1.生成密钥对

    opensll方式:

    openssl genrsa -out private.pem 4096  #生成私钥。

    openssl rsa -in private.pem -pubout -out pbulic.pem #由私钥生成公钥

    ssh-keygen方式:

    ssh-keygen -b 4096  #在用户目录下的.ssh目录生成密钥对。

    用户jack:

     用户root:

    puttygen方式:

    RSA  4096,是设置的参数,对应openssl的 genrsa,4096,点击Generate后,在这个窗口随意晃动鼠标来生成密钥。

    Save  public key,公钥。

    Save private key,私钥。

    很多地方都会用到的,毕竟所有的加密证书,都是从创建私钥开始的。

    2.上传公钥

     我分别用puttygen,openssl,ssh-keygen生成了密钥。

    上传至服务器/root/.ssh目录

    我常用winscp,ctrl+alt+h 可以显示隐藏文件,隐藏隐藏文件也是这个快捷键。

    3.配置sshd

    ssh是远程登录客户端,sshd是ssh远程登录服务器。

    我们要配置sshd,以使sshd服务,支持使用密钥登录。

    [root@host ~]$ cd .ssh
    [root@host .ssh]$ cat id_rsa.pub >> authorized_keys
    [root@host .ssh]$ chmod 600 authorized_keys
    [root@host .ssh]$ chmod 700 ~/.ssh
     

    将公钥写入信任列表,并确认权限。

    编辑 /etc/ssh/sshd_config 文件,进行设置:

    里面有一行:Include /etc/ssh/sshd_config.d/*.conf

    似乎现在流行在config.d下面增加配置文件了,不用你改原来的配置文件。

    那就进去建一个吧。

    /etc/ssh/sshd_config.d/RSAAuthentication.conf

    PubkeyAuthentication yes
    PubkeyAcceptedKeyTypes=+ssh-rsa

    主要是PubkeyAcceptedKeyTypes=+ssh-rsa,默认貌似现在是GSSAPI了,增加ssh-rsa格式的密钥

    PubkeyAuthentication yes,这行不确定原配置文件是什么,就也写进去了。

    重启ssh服务

    [root@host .ssh]$ systemctl restart sshd

    4.另一种方法配置公钥(推荐方法)

    winscp配置公钥

     

     打开私钥文件,然后向服务器安装公钥,根据提示输入用户名密码即可。

    私钥还是要和用户名匹配使用的。

    但是sshd的配置还得去修改。

    5.公钥,authorized_keys

     putty,openssl,生成的公钥都不能直接导入到authorized_keys,需要putty导入私钥,然后自动生成这个认证密钥,才能导入,所以推荐winscp导入服务器公钥,它会自动转换的。

    导入openssl格式的私钥,putty还会提示,就是让你转换一下格式而已,另存一份Putty格式的才可以用。

    6.cockpit导入公钥

    7.禁用密码登录

    /etc/ssh/sshd_config.d/RSAAuthentication.conf  增加一行:

    PasswordAuthentication no   #禁止密码登录。

     改这个之前至少配置好一个用户的密钥,否则你将无法远程登录。

  • 相关阅读:
    内置函数02
    生成器
    OpenJudge 2979 陪审团的人选 / Poj 1015 Jury Compromise
    OpenJudge/Poj 1936 All in All
    模板:各类型的最大数和最小数表示
    OpenJudge/Poj 1661 帮助 Jimmy
    OpenJudge/Poj 1915 Knight Moves
    OpenJudge 2757 最长上升子序列 / Poj 2533 Longest Ordered Subsequence
    OpenJudge/Poj 1163 The Triangle
    OpenJudge/Poj 1844 Sum
  • 原文地址:https://www.cnblogs.com/jackadam/p/16256661.html
Copyright © 2020-2023  润新知