我听说SSH不需要证书。
但是对于SSH的RSA身份验证,它应该确保公钥属于服务器,并且可以使用证书完成。
但它不使用证书。
那怎么办?
答案 0 :(得分:4)
没有。它不需要它们,但它可以使用它们(但它们与SSL中使用的证书不同!出于各种原因)。证书仅用于将验证委派给某个证书颁发机构。要验证公钥,您只需使用“安全”通道获取公钥。
有几种可能性。服务器管理员将使用不同的安全通道向您发送公钥指纹的公钥。它们看起来像这样:
公钥:ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
~/.ssh/known_hosts
中。指纹SHA256:zzXQOXSRBEiUtuE8AikJYKwbHaxvSc0ojez9YXaGp1A bitbucket.org (RSA)
首次连接服务器时,系统会询问您类似的问题:
The authenticity of host 'bitbucket.org (104.192.143.3)' can't be established.
RSA key fingerprint is SHA256:zzXQOXSRBEiUtuE8AikJYKwbHaxvSc0ojez9YXaGp1A.
Are you sure you want to continue connecting (yes/no)?
还有可能将主机密钥添加到SSHFP
DNS记录中,这将消除上述负担(您应该拥有DNSSEC,否则DNS记录可以像直接连接一样进行修改)。为此,您需要使用ssh_config
选项在VerifyHostKeyDNS
中启用此功能。
SSH可以使用证书。这在公司环境中很常见,在该环境中,您已经获得了使用证书颁发机构配置的known_hosts
文件,该文件用于签署所有主机密钥(通常还有客户端身份验证密钥)。在这种情况下,您不需要上面的任何内容并连接到本地基础设施“只是工作”。请注意,这些证书不是SSL / TLS PKI中使用的X509。有关这些证书的详细信息,请参阅ssh-keygen
的手册页,其中详细说明了这一点。