跳到主要内容
版本:FCP 24.08

SSH证书

介绍

SSH 协议提供多种身份验证方式:密码、公钥和证书等。基于证书的身份验证是其中最安全的,尤其在大量云弹性的计算环境中,用户的公钥不会以 ~/.ssh/authorized_keys 的形式分发给服务器,这样可以省去很多麻烦。

该功能实现以更加安全的方式连接到Linux节点。

证书验证的优势

相较于密码和密钥的认证方式,SSH证书有以下优势:

  • 安全性高:SSH证书使用加密的方式进行通信,而且私钥文件需要妥善保管,因此相对于密码验证,它更为安全。
  • 便利性高:SSH证书可以用于单向和双向身份验证,避免了每次使用时输入密码的麻烦。
  • 可管理性强:SSH证书的管理非常方便,和密钥相比,SSH证书支持过期时间,从而提高了系统安全性

SSH客户端是否支持证书验证的方式调研

操作系统SSH客户端是否支持
LinuxCentOS6.x✅验证通过
CenOS7.x✅验证通过
Ubuntu18.04✅验证通过
MaciTerm2✅验证通过
PyCharm社区版不支持remote ssh专业版未验证
VSCode Remote SSH✅验证通过
WindowsPowerShell✅验证通过
WSL理论上支持,未验证成功
PyCharm社区版不支持remote ssh专业版未验证
VSCode Remote SSH✅验证通过
Xshell✅未验证,官方文档支持Using the OpenSSH CA (Certificate Authority) in Xshell - Technical Support - NetSarang Computer
Putty✅未验证,官方文档支持Implementing OpenSSH certificate support in PuTTY
SecureCRT✅未验证,官方文档支持Using X.509 Certificates - SecureCRT Documentation

基于SSH证书实现登录认证

权限说明
  • 所有用户均有SSH密钥界面,均可以添加密钥
  • 当前用户使用签发的证书登录集群/桌面时,仅支持登录当前用户,不支持用证书登录其他用户的账户
  • 不支持登录平台中的除桌面和集群节点以外的节点,如文件系统、管理节点、基础节点等
  • 添加密钥的次数无限制,用户可以添加多个密钥
  • SSH证书默认有效期为3个月,目前不支持修改有效期
账户设置

SSH密钥在账户设置中进行管理

添加密钥

支持通过新建密钥对和导入公钥两种方式添加密钥

  • 新建密钥对

点击确定后,自动生成三个文件,分别是id_rsa_[user][date]命名的私钥文件、id_rsa[user]date.pub命名的公钥文件和一个id_rsa[user]_[date]-cert.pub命名的证书文件

  • 导入公钥

支持直接粘贴公钥内容,也支持选择公钥文件之后,自动识别公钥内容

如果格式正确,确定之后,自动生成一个id_rsa_[user]_[date]-cert.pub命名的证书文件

使用证书登录集群/桌面

将证书和私钥放在同一目录下,在安全组网络允许的情况下,可以登录当前账号中的集群和桌面中的任一节点