需要指导以了解 SSHD 密码/pubkeyauthentication 的设置

需要指导以了解 SSHD 密码/pubkeyauthentication 的设置

我是一名普通的管理员,负责维护自己的系统,没有专业工作经验。我已经为 SSH 设置了许多系统,使用密码和私钥。这个系统很奇怪。我不一定想在这里诊断问题。我需要帮助,以便知道现在和下次我应该查看什么来自己诊断。我读了很多“如何实现公钥/私钥认证”博客和维基。我需要更多适用于 Ubuntu 20.04+ 的具体细节。我正在寻找更多更好的文档。

  • 关于密钥:有首选格式吗?RSA,DSA?
  • 首选位数:2048?4096?
  • 使用“git bash”ssh-key-gen和PuTTY密钥生成器生成的私钥和公钥之间有什么区别?
  • OpenSSH 密钥格式可以接受吗?旧格式还是新格式?

我一直对使用 ssh-copy-id 将公钥从客户端发送到服务器感到困惑。服务器需要允许密码验证才能保存 .ssh/authorized_keys。如果我们关闭了密码验证,将公钥放入服务器的通常方法是什么……特别是因为我们试图实现 100% 公钥验证?

我想对 .ssh/known_hosts 有更多的控制权:

  • 此文件是否会随着给定 SSH 公钥用户使用的每个主机进行更新?
  • 我们是否应该手动加载文件以接受来自特定主机的连接?如果是这样,该数据的来源是什么?

理想情况下,我希望客户端应用程序决定如何进行身份验证:如果客户端设置为公钥并且它有一个有效的私钥,则允许登录。如果客户端应用程序设置为使用密码,则提示输入密码。

最后,sshd -T | sort当我看到客户端提示输入密码,而服务器端的 passwordauthentication 为“no”且 pubkeyauthentication 为“yes”时,我感到很困惑。我猜是 pubkey 身份验证失败了,它又回到了密码。

正如您所看到的,我一直在努力解决这个系统,其中的配置看起来像我面前的其他配置,但我无法始终如一地有意地正确配置密码与密钥认证。

总之,我认为我需要将日志级别设置为 VERBOSE,并仔细查看客户端和服务器交换以查看哪里出了问题。我希望有人能指出专注于此诊断领域的优秀文档。请记住,我希望更多地了解如何诊断问题,而不仅仅是“将 x 设置为 y”,但我会尽我所能。:)

谢谢!

相关内容