如何在不支持DNSSEC的Oracle Cloud中创建子域并配置SSHFP记录?
问题解答
一、为Oracle Cloud实例配置SSHFP记录
- 生成SSHFP记录内容
在目标Oracle Cloud实例上执行命令,提取主机密钥的SSHFP指纹:
命令会输出类似格式的记录:ssh-keygen -r $(hostname)hostname IN SSHFP 1 1 abcdef1234567890abcdef1234567890abcdef12,其中包含算法类型、哈希类型和指纹值三个核心参数。 - 在Oracle DNS托管服务中添加记录
- 登录Oracle Cloud控制台,进入DNS管理模块,定位到要操作的域名区域(Zone)
- 点击添加记录,选择记录类型为
SSHFP - 填写实例对应的主机名(如
server.example.co.uk),并填入第一步生成的算法、哈希类型、指纹值参数 - 保存记录,等待DNS全局生效后,SSH客户端即可通过SSHFP验证该实例的身份
二、GCP托管父域时,Oracle DNS托管子域的方案与DNSSEC问题
CDS/CDNSKEY的适用场景
CDS和CDNSKEY记录的核心作用是实现DNSSEC密钥的自动同步,让父域DNS自动获取子域的密钥信息并生成DS记录,完成信任链传递。但Oracle Cloud DNS不支持完整的DNSSEC签名能力,因此即使在Oracle DNS中配置CDNSKEY,GCP父域也无法基于此构建有效的DNSSEC信任链,CDS/CDNSKEY无法替代NS记录完成子域托管配置。
子域托管的最优方案
你当前为单个主机配置NS记录的方式效率较低,更合理的做法是:
- 若将整个子域(如
oracle.example.co.uk)托管到Oracle DNS,只需在GCP托管的父域(example.co.uk)中添加一条子域级别的NS记录,指向Oracle Cloud DNS的权威服务器地址(可在Oracle DNS控制台的区域详情中获取NS列表) - 后续该子域下的所有主机记录(A/AAAA/SSHFP等)直接在Oracle DNS中配置,无需在GCP逐个操作,管理更高效,解析流程也更清晰
DNSSEC失效的解决思路
由于Oracle DNS不支持DNSSEC签名,如果你在GCP父域启用了DNSSEC,托管在Oracle的子域无法提供有效的签名信息,会导致父域的DNSSEC信任链断裂,进而引发验证失败问题。可选解决方向:
- 若需保留Oracle DNS托管子域,需在GCP父域中关闭该子域的DNSSEC签名(不对子域的NS记录进行签名),这样父域的DNSSEC不会影响子域的正常解析,但子域本身无法使用DNSSEC功能
- 若要求子域也支持DNSSEC,建议将子域迁移回GCP DNS托管,或更换其他支持完整DNSSEC能力的托管服务
内容的提问来源于stack exchange,提问作者paradroid
相关产品推荐
相关产品推荐

