了解ssh自动登录和安全问题

了解ssh自动登录和安全问题

我已经生成了一对私钥/公钥 ssh 密钥(在 Linux 上),它们现在位于我的.ssh文件夹中。

我已经将我的 ssh id ( ssh-copy-id) 复制到了一台远程机器,我想连接该机器而不必一直输入我的密钥。

复制我的 ssh id 后,我无需输入密码即可连接到机器,并且我已经仔细检查过,.ssh/authorized_keys唯一授权的公钥是我刚刚复制的那个(这没问题)。

然而,我发现有两个问题:

第一的出于某种原因,ssh-copy-id也将我的私钥复制到了该机器上。我已将其删除,因为它似乎是一个将您的私钥传播到其他机器上的大型安全漏洞。这是正确的吗?

第二,我发现我的公钥现在已写入.ssh/authorized_keys。此文件的权限配置为只有我的用户可以读取它(-rw-------)。但是,如果有人设法访问此内容,他/她可以无需密码访问我的远程计算机,这是正确的吗?我发现,在我的本地计算机中,此文件已生成,并具有允许任何其他用户(登录到计算机)读取它的权限。这难道不是一个安全漏洞吗?我是否应该更改权限,以便只有我的用户可以读取文件的内容?

最后的,在连接远程机器时,哪个密钥实际上用于验证我的身份,私人密钥还是公共密钥?

答案1

  1. ssh-copy-id应该只将公钥复制到authorized_keys,而不应该复制您的私钥。您确定没有手动将任何其他内容复制到远程计算机,还是您还在远程计算机上生成了一组密钥(使用默认文件名)?
  2. 不可以,只有当某人可以写入自己的公钥时,authorized_keys他们才能以您的身份访问该机器。能够读取该文件并不意味着可以访问任何其他机器。
  3. 两者都有。当您尝试连接时,您的私钥用于签署远程计算机提出的质询,然后使用公钥在远程计算机上进行检查,以证明签署该质询的是您的私钥。

我建议你去看看非对称加密是如何工作的。

相关内容