涉及与远程服务器之间复制文件的某些 API 请求要求在请求正文中提供远程服务器的 SSH 指纹。SSH 指纹是从远程服务器上的主机密钥中获取的。

要通过 SSH 进行连接,NSX Manager 和远程服务器必须具有相同的主机密钥类型。如果具有多个相同的主机密钥类型,将根据 NSX Manager 上的 HostKeyAlgorithm 配置确定首选的类型。

具有远程服务器的指纹可以帮助您确认连接到正确的服务器,从而防止受到中间人攻击。您可以询问远程服务器管理员他们是否可以提供服务器的 SSH 指纹。或者,您可以连接到远程服务器以查找指纹。通过控制台连接到服务器比通过网络更安全。

下表按从首选到非首选顺序列出 NSX Manager 支持的主机密钥。
表 1. 按优先顺序排列的 NSX Manager 主机密钥
NSX Manager 支持的主机密钥类型 默认密钥位置
ECDSA(256 位) /etc/ssh/ssh_host_ecdsa_key.pub
ED25519 /etc/ssh/ssh_host_ed25519_key.pub

过程

  1. 以 root 身份登录到远程服务器。
    使用控制台登录比通过网络更安全。
  2. 列出 /etc/ssh 目录中的公钥文件。
    $ ls -al /etc/ssh/*pub
    -rw-r--r-- 1 root root 601 Apr  8 18:10 ssh_host_dsa_key.pub
    -rw-r--r-- 1 root root  93 Apr  8 18:10 ssh_host_ed25519_key.pub
    -rw-r--r-- 1 root root 393 Apr  8 18:10 ssh_host_rsa_key.pub
    
  3. 将可用的密钥与 NSX Manager 支持的密钥进行比较。
    在该示例中,ED25519 是唯一可接受的密钥。
  4. 获取密钥的指纹。
    # awk '{print $2}' /etc/ssh/ssh_host_ed25519_key.pub | base64 -d | sha256sum -b | sed 's/ .*$//' | xxd -r -p | base64 | sed 's/.//44g' | awk '{print "SHA256:"$1}'
    SHA256:KemgftCfsd/hn7EEflhJ4m1698rRhMmNN2IW8y9iq2A