与通过电子邮件交换ftp/sftp凭据不同,通过电子邮件交换系统ssh密钥是否更安全?如果一个人没有物理ssh私有文件,黑客能够通过只知道公共ssh键字符串就可以访问服务器吗?
发布于 2015-09-08 19:53:48
公钥密码体制的目的是在不影响系统安全性的前提下,对公钥进行广泛的公开。因此,不,如果黑客能够拦截服务器的公钥,那么试图获得对系统的访问是没有好处的。
发布于 2015-09-08 22:23:09
正如在“妇女回答”中已经提到的,如果攻击者拦截了密钥,您是安全的。这就是非对称密码学的目的。
但是,如果攻击者不仅能够拦截密钥,而且还能够操纵您的通信通道,那么他就可以用自己的密钥替换发送的公钥,并访问您的系统。它通常被称为身份验证问题。
如果你疑神疑鬼,并且知道对方的声音,这会给你发钥匙,你也应该核实手机上的钥匙指纹,因为语音通讯比电子邮件难得多。
发布于 2015-09-08 23:17:00
是的,共享服务器的公钥是完全安全的,它用于识别服务器和处于中间保护中的man。一旦您“接受”了公钥,您的客户将记住它,并警告您,如果它改变。(在中间人攻击的情况下,情况会是这样。)
根据rfc4255:http://www.ietf.org/rfc/rfc4255.txt的说法,通常我们可以更进一步,在DNS中发布密钥的指纹。
这允许客户端在实际连接到ssh守护进程通过端口22接收公钥之前检索密钥的指纹。
如果指纹与服务器提供的公钥匹配,则连接将继续。
这是一些关于强制执行的基本说明。https://simon.butcher.name/archives/2011/01/16/SSH-key-fingerprints-in-DNS
对于私钥,无论是由您生成的还是由您的客户生成的,都应该绝对保密,并使用强大的密码进行存储。
通常,我建议在SSH上禁用密码,使用/etc/ssh/sshd_config选项:PasswordAuthentication no
这将只允许具有~/..ssh/authorized_ keys中列出的私钥的客户端连接。是的,您仍然可以在sudo/su提示符下使用密码,它根本不允许您在SSH上使用用户名和密码登录。需要私钥。
如果你想不出一个好的密码,我建议你停下来。
(是的,密码可能包含空格,比如“高贵姐妹保护”(Noble Sister protection )之类的内容可以很容易记住,而且仍然携带足够的熵来进行足够的保护--参见XKCD漫画#936,题为“密码强度”。)
当私钥与密码相关联时,客户端保存的.ppk或id_rsa文件将被加密。一般的想法是,您(服务器管理员)永远不会知道用于加密客户端密钥的密码/密码。一旦客户端解锁/解密密钥,将其作为数学问题提交给您(服务器),身份验证就会继续进行。根本没有办法从服务器上恢复客户端的密码(除非他们愚蠢到上传自己的私钥--不要这样做!)使用SSH代理转发,或在windows上使用putty的pageant.exe密钥代理。)
https://serverfault.com/questions/720997
复制相似问题