.ssh目录内容

Linux中,每个用户根目录下都有一个.ssh目录保存ssh相关key和一些记录文件例如

root@ubuntu:~/.ssh# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts  known_hosts.old

使用sshkeygen生成key

sshkeygen可以生成ssh协议需要公钥私钥例如

ssh-keygen -t rsa

命令生成一个私钥文件默认id_rsa)和一个公钥文件(默认id_rsa.pub)。
其中私钥是必须保存在.ssh目录中的,只有该主机的该用户可以使用。而公钥是给需要使用ssh验证服务器使用密钥可以免密验证比如ssh,scp,rsync等。

known_hostsknown_hosts.old

known_hostsknown_hosts.old是SSH客户端中的文件,用于存储已知主机公钥信息。以下是它们的作用功能

  1. known_hosts文件:这个文件包含了您曾经连接过的远程主机公钥信息。当您首次连接一个远程主机时,SSH客户端会将该主机的公钥保存known_hosts文件中。下次再次连接该主机时,客户端验证主机的公钥是否与之前保存的一致,以防止中间人攻击。如果主机的公钥发生变化,客户端会发出警告,以提醒您进行确认

  2. known_hosts.old文件:当SSH客户端检测known_hosts文件发生了变化(比如主机公钥发生了更改)时,它会将原始的known_hosts文件备份known_hosts.old。这样,您可以在需要时恢复到旧的已知主机配置

这些文件通常位于SSH客户用户~/.ssh/目录下,每个用户都有自己独立副本

请注意,known_hosts文件不包含任何敏感信息,它只存储公钥信息以供身份验证使用。但是,如果您的系统存在安全问题,有人可能通过欺骗您来窃取您的密钥,因此当发现known_hosts文件发生变化时,务必审查验证公钥的有效性。

authorized_keys文件

authorized_keys文件位于SSH服务器上,用于存储允许访问服务器客户端的公钥。当您希望使用密钥进行SSH身份验证时,您需要将您的公钥添加目标服务器的authorized_keys文件中。只有在authorized_keys文件中列出的公钥才能成功进行身份验证并获得访问权限

authorized_keys文件的作用配置服务器允许哪些客户端使用密钥进行身份验证。每个客户端的公钥都需要在该文件中有相应的条目才能成功进行身份验证

known_hosts和authorized_keys的区别

虽然known_hosts和authorized_keys两个文件都涉及到存储其他主机的公钥信息,但它们在SSH身份验证过程中的角色和功能是不同的。
known_hosts文件用于SSH客户验证远程主机的身份,而authorized_keys文件用于SSH服务器验证客户端的身份。它们在SSH连接过程中扮演了不同的角色,并且存储的公钥信息也有不同来源和目的。
可能在.ssh目录中同时看到known_hosts和authorized_keys文件,因为这个主机即可以作为ssh客户端去连接其他主机,也可以作为ssh服务器被其他主机连接,因此这两个文件就都存在

公钥使用举例:rsync免密同步文件

使用rsync同步文件时,我们可以目标主机用户保存当前主机用户的公钥,以实现免密同步文件。

原文地址:https://blog.csdn.net/n5/article/details/130965092

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_44190.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注