dam*_*uar 22 security ssh openssh key-authentication
我阅读了有关在 Linux 中设置 ssh 密钥的信息并有一些问题。如果我错了纠正我…
假设主机 tr-lgto 想要使用 ssh 连接到主机 tr-mdm。如果我们想确定它是真正的 tr-mdm,我们会known_hosts
在 tr-mdm 上生成一对密钥,并将公钥添加到tr-lgto 上。如果 tr-mdm 想要检查它是否是真正的 tr-lgto,那么 tr-lgto 必须生成一个密钥对并将公钥添加到 tr-mdmauthorized_keys
上。
问题 1:known_hosts 文件中没有用户字段,只有 IP 地址和主机名。tr-mdm 可能有很多用户,每个用户都有自己的.ssh
文件夹。我们应该为每个known_hosts
文件添加公钥吗?
问题2:我发现ssh-keyscan -t rsa tr-mdm
会返回tr-mdm的公钥。我怎么知道这个密钥属于哪个用户?此外,公钥输入/root/.ssh/
与该命令返回的不同。怎么会这样?
Gil*_*il' 35
您正在混淆服务器机器对客户端机器的身份验证,以及用户对服务器机器的身份验证。
建立 SSH 连接时发生的第一件事是服务器将其公钥发送给客户端,并向客户端证明(由于公钥加密)它知道关联的私钥。这对服务器进行了身份验证:如果协议的这一部分成功,则客户端知道服务器就是它假装的那个人。
客户端可能会检查服务器是否是已知服务器,而不是某个试图冒充正确服务器的恶意服务器。SSH 仅提供一种简单的机制来验证服务器的合法性:它会~/.ssh/known_hosts
在客户端计算机上的文件中记住您已经连接到的服务器(还有一个系统范围的文件/etc/ssh/known_hosts
)。第一次连接服务器时,您需要通过其他方式检查服务器提供的公钥是否确实是您要连接的服务器的公钥。如果您拥有要连接的服务器的公钥,则可以~/.ssh/known_hosts
手动将其添加到客户端。
在向服务器发送任何机密数据之前,必须先对服务器进行身份验证。特别是,如果用户身份验证涉及密码,则不得将密码发送到未经身份验证的服务器。
服务器仅允许远程用户登录,前提是该用户可以证明他们有权访问该帐户。根据服务器的配置和用户的选择,用户可能会提供多种形式的凭据之一(以下列表并非详尽无遗)。
~/.ssh/authorized_keys
在服务器上),则接受登录尝试。 归档时间: |
|
查看次数: |
135929 次 |
最近记录: |