设为首页 加入收藏

TOP

配置sshd使用CA签名证书登录_ssh证书登录_更新sshd服务端的通讯密钥(三)
2023-07-23 13:39:55 】 浏览:60
Tags:配置 sshd 使用 _ssh 更新 通讯密
erver_ca.pub。
只是密钥对,不是证书。因为没做自签名证书。
  • 让ssh客户端信任"服务器CA"的公钥。(用户级)
    在ssh客户端上, 用户的 ~/.ssh/known_hosts 中加入一行(服务器CA的公钥)。此文件权限mode通常是0644。
    @cert-authority * ssh-ed25519 AAAAC.....xx server_ca@myCA
    内容为 server_ca.pub 文件的内容。
  • 让ssh客户端信任"服务器CA"的公钥。(全局)
    在ssh客户端上,/etc/ssh/ssh_known_hosts 中加入一行(服务器CA的公钥)。此文件权限mode是0644。
    @cert-authority * ssh-ed25519 AAAAC.....xx server_ca@myCA
    内容为 server_ca.pub 文件的内容。
  • 只要是这个密钥(服务器CA)签名过的服务器公钥,配置到sshd服务器之后。ssh连接服务器时,就不会有连接警告。
  • 用 server_ca (私钥)对服务器的公钥签名,得到服务器证书。
    直接在sshd服务器上签名,或者把服务器的三个公钥发给管理员签名。
    对于openSSH-8,是这三个ssh_host_ecdsa_key.pub,ssh_host_ed25519_key.pub,ssh_host_rsa_key.pub
    比如,签其中一个: ssh-keygen -s server_ca -I ident -z 01 -h /etc/ssh/ssh_host_ed25519_key.pub
    得到一个文件 ssh_host_ed25519_key-cert.pub
    别忘了 -h 参数,漏了就无效了。
    可以带上 -V -1m:forever -n "*.myhost.cn,*.xxx.com"
    -n abc.mydomain.com 限制证书的域名,IP。不限制就去掉这个参数。
    -V -1m:+3d 限制证书的时效。不限制就去掉这个参数。
    -z 01 序号,数字。
    可以对多个不同类型的公钥签名,得到不同类型的服务器证书。
    sshd服务器原本使用的密钥,不满意,可以在sshd服务器上重新生成一遍。保证服务器私钥不传递。见下面【更新sshd服务端的通讯密钥/证书】部分。
  • 查看已经签名的服务器证书的内容。
    ssh-keygen -L -f ssh_host_ed25519_key-cert.pub
  • 在sshd服务器上,修改 /etc/ssh/sshd_config 加三行,
    HostCertificate /etc/ssh/ssh_host_ecdsa_key-cert.pub
    HostCertificate /etc/ssh/ssh_host_ed25519_key-cert.pub
    HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub
    如果只签一个类型的服务器证书,HostCertificate /etc/ssh/.... 就只写一行吧。
    重启 sshd,执行 /sbin/service sshd reload
  • 在ssh客户端上,用命令 ssh user1@sshd服务器 就没有连接警告了。
  • 让ssh客户端 revoked 服务器的公钥。(用户级)
    在ssh客户端上,用户的 ~/.ssh/known_hosts 中加入一行的公钥。
    @revoked * ssh-ed25519 AAAAC.....xx server_ca@myCA
    内容可以是CA公钥 server_ca.pub,也可以是普通服务器的公钥,也可以是服务器证书ssh_host_ed25519_key-cert.pub的内容。
  • 让ssh客户端 revoked 服务器的公钥。(全局)
    在ssh客户端上,/etc/ssh/ssh_config 中加入 RevokedHostKeys /path_to/KRL_file
    /path_to/KRL_file文件权限mode是0644。
    KRL文件格式,可以是纯文本,一行一个公钥。也可以是由ssh-keygen生成的二进制格式。
    ssh-keygen 创建 KRL 文件,见前面【基于签名(证书)的用户认证】部分。
  • 让ssh客户端 revoked 服务器的公钥。(全局)
    在ssh客户端上,/etc/ssh/ssh_known_hosts 中加入一行,也可以。此文件权限mode是0644。
    @revoked * ssh-ed25519 AAAAC.....xx server_ca@myCA
  • 更新 sshd 服务端的通讯密钥/证书,保证服务器安全

    • 目前的 OpenSSH-8 需要三套密钥,一共六个文件。
      cd /etc/ssh/
      ssh-keygen -l -f ssh_host_rsa_key  #看一下,原来密钥的注释是什么。然后决定下面的 -C 参数写什么
      
      ssh-keygen -t ecdsa -b 384 -C root@你的机器名 -f ssh_host_ecdsa_key
      ssh-keygen -t ed25519 -C root@你的机器名 -f ssh_host_ed25519_key
      ssh-keygen -t rsa -b 4096 -C root@你的机器名 -f ssh_host_rsa_key
      service sshd restart   #重启sshd服务
      
    • 其中,
      ecdsa默认是256bit,可以用 -b 指定,
      ed25519固定是256bit,不能改,
      rsa默认已经从2048改为3072bit了,可以用 -b 指定。
    • 还有个简单的办法。
      删除所有的服务器密钥 rm /etc/ssh/ssh_host_* , 重新用默认值生成一遍 ssh-keygen -A
      重启sshd服务 service sshd restart
    • 参考【更换ssh通信证书,ssh更改公钥和密钥,以保证服务器安全
      更换ssh通信证书,ssh更改公钥和密钥,以保证服务器安全

    其他

    ---end---


    转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/16870594.html 来自osnosn的博客.

    首页 上一页 1 2 3 下一页 尾页 3/3/3
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    上一篇日志服务管理和文件共享服务 下一篇Installation RabbitMQ-3.10.2 on..

    最新文章

    热门文章

    Hot 文章

    Python

    C 语言

    C++基础

    大数据基础

    linux编程基础

    C/C++面试题目