Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSH需要证书吗?_Ssh - Fatal编程技术网

SSH需要证书吗?

SSH需要证书吗?,ssh,Ssh,我听说SSH不需要证书 但是对于SSH的RSA身份验证,它应该确保公钥属于服务器,并且可以通过证书来完成 但它不使用证书 那么它是如何做到的呢?不。它不需要它们,但它可以使用它们(但由于各种原因,它们与SSL中使用的证书不同)。证书仅用于将验证委托给某些证书颁发机构。要验证公钥,只需使用“安全”通道获取公钥 那么,如何验证所连接服务器的公钥呢? 有几种可能性。服务器管理员将使用不同的安全通道向您发送公钥指纹的公钥。它们可以如下所示: 公钥:ssh-rsa2.一个2岁的2岁的2岁的2岁的2岁的2

我听说SSH不需要证书

但是对于SSH的RSA身份验证,它应该确保公钥属于服务器,并且可以通过证书来完成

但它不使用证书


那么它是如何做到的呢?

不。它不需要它们,但它可以使用它们(但由于各种原因,它们与SSL中使用的证书不同)。证书仅用于将验证委托给某些证书颁发机构。要验证公钥,只需使用“安全”通道获取公钥

那么,如何验证所连接服务器的公钥呢? 有几种可能性。服务器管理员将使用不同的安全通道向您发送公钥指纹的公钥。它们可以如下所示:

  • 公钥:
    ssh-rsa2.一个2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的2岁的RNI2RBFG/rd/IpL8Le3pSBne8+参见fvbogqzhm9yxw==

    • 您可以将此文件直接存储在带有服务器名称和空间前缀的
      ~/.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\u config
中使用
VerifyHostKeyDNS
选项将其打开

证书呢?
SSH可以使用证书。这在公司环境中很常见,在公司环境中,您已经获得了一个配置有证书颁发机构的
已知_hosts
文件,该文件用于对所有主机密钥(通常也是客户端身份验证密钥)进行签名。在这种情况下,您不需要上面的任何东西,连接到本地基础设施“就行了”。注意,这些证书不是SSL/TLS PKI中使用的X509。有关这些证书的更多信息,请参阅
ssh-keygen
的手册页,其中详细解释了这一点。

这不是一个讨论论坛,而是一个问答(我建议您从一开始),因此详细阐述和研究的问题比“讨论主题”更受欢迎。不过,我还是会尽量回答你们。我投票决定不讨论这个问题,因为这根本不是一个编程问题。再次非常感谢。我想问更多。如果MAC在密钥交换过程中用于真实性,主机如何在MAC中使用密钥?密钥交换尚未完成,密钥未建立,这也是密钥交换的结果。共享密钥分为若干部分,用于MAC(密钥)和密码(密钥和初始化向量)。当您验证主机密钥时,密钥交换已经完成。因此,在密钥交换过程中,不使用MAC。那么在此过程中,用于真实性的是什么?我建议您通读SSH协议,即。