我是一名普通的管理员,负责维护自己的系统,没有专业工作经验。我已经为 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”,但我会尽我所能。:)
谢谢!