# 《WaLiSSH - AI Shell 智能终端》第1-4节:ssh连接配置库表设计
作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/Wxy9K (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
# 一、本章诉求
在上一节我们做了 SSH 连接服务器的基础设施实现,并做了单测验证。那么接下来,我们要考虑把关于 SSH 的配置信息存储到数据库中,这样才能持久化的操作。
本节课程,主要完成以下内容:
- 理解 SSH 连接配置的业务需求,明确表结构设计的目标
- 掌握表拆分设计的思想,理解为什么要把配置拆成两张表
- 学习字段类型选择的原则,包括 varchar、tinyint、longtext 的使用场景
- 了解索引设计的最佳实践,包括主键、唯一索引、普通索引的作用
- 理解数据加密存储的方案,密码和私钥为什么要加密、怎么加密
你可以先尝试按照这样的分析进行库表设计,之后在看下文的内容。
# 二、库表关系
在开始设计表结构之前,我们先来分析一下 SSH 连接配置的业务需求。
# 2.1 需求分析
在我们上一节做案例的时候可以看到,SSH 连接配置,简单来说就是用户在 WaLiSSH 客户端中保存的服务器连接信息。主要包括以下几类信息:
基础连接信息:
- 连接名称(如"腾讯云服务器")
- 主机地址(如"140.143.183.225")
- 端口号(默认 22)
- 用户名(如"root"、"ubuntu")
- 认证方式(密码 or 私钥)
- 认证凭证(密码 or 私钥内容)
高级配置信息:
- 连接超时时间(默认 10 秒)
- 保活间隔(默认 60 秒)
- 是否启用压缩
- 是否严格检查主机密钥
- 已知主机密钥列表
- 连接后执行的启动命令
系统管理信息:
- 用户ID(如果是公司里使用,有登录权限操作的时候,可以区分不同用户的配置)
- 连接状态(未连接、已连接、连接中、连接失败)
- 加密标志(标识凭证是否加密)
- 创建时间、更新时间
- 逻辑删除标志

