交换系统服务器ssh-keys是否安全?

通过电子邮件交换ftp / sftp凭证而不是通过电子邮件交换系统ssh-keys更安全? 如果一个人没有物理的ssh私钥文件,黑客是否能够通过知道公共的ssh-keystring来访问服务器?

公钥密码体制的关键在于公钥可以广泛的公开发布而不损害系统的安全性。 所以,不,如果一个黑客能够拦截服务器的公钥,那么在试图访问系统时就没有任何好处。

正如已经在wolbles中所提到的那样,如果攻击者拦截了密钥,那么你是安全的。 这就是非对称密码学的目的。

但是,如果攻击者不仅能够截获密钥,而且能够操纵你的通信通道,那么他可以用自己的密钥来replace已发送的公钥,并访问你的系统。 它通常被称为authentication问题。

如果你是偏执狂,知道这个人的声音,那就给你发送密钥,你还应该validation手机上的密钥指纹,因为语音通信比电子邮件更难操作。

是的,共享服务器的公钥是完全安全的,服务器的公钥是用来识别服务器的,公司是中间人。 一旦你“接受”了公钥,你的客户就会记住它,并警告你是否改变。 (在中间人攻击的情况下,这会是什么情况)

正常情况下,可以进一步,并在DNS中发布密钥的指纹,根据rfc4255: http ://www.ietf.org/rfc/rfc4255.txt

这允许客户端在实际连接到ssh守护程序之前检索密钥的指纹,以通过端口22接收公钥。

如果指纹匹配服务器提供的公钥, 连接将继续。

以下是执行此操作的一些基本说明。 https://simon.butcher.name/archives/2011/01/16/SSH-key-fingerprints-in-DNS

至于由您或您的客户产生的私钥,这些密钥应绝对保密,并使用强密码储存。

一般来说,我build议使用/ etc / ssh / sshd_config选项通过SSH禁用密码: PasswordAuthentication no

这将只允许具有列在〜/ .ssh / authorized_keys中的私钥的客户端进行连接。 是的,您仍然可以在sudo / su提示符下使用密码,但它不会让您通过SSHlogin用户名和密码。 私钥是必需的。

如果您在思考一个好的密码时遇到麻烦,我build议您通过正确的答案来停止。

(是的,密码可能包含空格,像“姊妹保护”这样的东西可以很容易记住,而且还有足够的熵来保证足够的保护 – 见XKCD漫画#936标题为“密码强度”。)

当私钥具有关联的密码时,客户端保存的.ppk或id_rsa文件将被encryption。 一般的想法是,你(服务器pipe理员)永远不会知道用于encryption客户端密钥的密码/密码。 一旦客户端解锁/解密密钥将其呈现给您(服务器)作为math问题,身份validation就会继续。 从来没有办法从服务器端恢复客户端的密码短语(除非他们愚蠢地上传他们的私钥 – 不这样做!在Windows上使用SSH代理转发或putty的pageant.exe密钥代理。)