Ssh

如何生成 SSHFP 記錄?

  • June 19, 2021

我需要在我的主機的 DNS 中設置 SSHFP 記錄。我做了一些搜尋,但我沒有找到任何好的例子。

  • 什麼是 SSHFP 記錄?
  • SSHFP 記錄是什麼樣的?
  • 如何創建 SSHFP 記錄?

什麼是 SSHFP 記錄?

SSHFP 記錄是包含用於 SSH 的公鑰指紋的 DNS 記錄。它們主要用於啟用 DNSSEC 的域。當 SSH 客戶端連接到伺服器時,它會檢查相應的 SSHFP 記錄。如果記錄指紋與伺服器匹配,則伺服器是合法的並且可以安全連接。

SSHFP 記錄是什麼樣的?

SSHFP 記錄由三部分組成:

  1. 公鑰算法
  2. 指紋類型
  3. 指紋(十六進制)

公鑰算法

截至 2021 年,SSHFP 中定義了五種不同的算法。每個算法都用一個整數表示。算法是

  • 1 - RSA
  • 2 - 動態搜尋廣告
  • 3 - ECDSA
  • 4 - Ed25519
  • 6 - Ed448

指紋類型

截至 2012 年,SSHFP 中定義了兩種指紋類型。每個指紋類型由一個整數表示。這些是

  • 1 - SHA-1
  • 2 - SHA-256

如何生成 SSHFP 記錄?

您可以使用ssh-keygen使用-r參數生成記錄,後跟主機名(這不會影響指紋,因此您可以指定您喜歡的任何內容)

例子

使用ssh-keygen和 CentOS:

[root@localhost ~]# ssh-keygen -r my.domain.com
my.domain.com IN SSHFP 1 1 450c7d19d5da9a3a5b7c19992d1fbde15d8dad34
my.domain.com IN SSHFP 2 1 72d30d211ce8c464de2811e534de23b9be9b4dc4

筆記

有時ssh-keygen會詢問公共證書的位置。如果它要求,您將不得不執行ssh-keygen多次並且每次指定不同的證書以確保您生成所有必要的 SSHFP 記錄。您的公鑰通常位於/etc/ssh.

引用自:https://unix.stackexchange.com/questions/121880