这个问题的灵感来自这个线程
假设场景,对于上下文如下:
- SSH 服务器,无论是路由器、防火墙等,都首先在私有 + 安全环境中进行配置,然后再进行部署。SSH 密钥是在此环境中的服务器上本地生成的。
- SSH 服务器有自己的 ACL,用于拒绝来自除我们主机之外的任何东西的连接
- 主机将是具有多个用户的 Linux 机器
标准方法可能是使用 PKI,并在所有用户帐户上安装受信任的 CA,并部署本地 SCEP 服务器等。但取而代之的是,谨慎的做法是:
在安全环境中,并在配置时,将服务器的 RSA 指纹导入
known_hosts
我们主机的容器(或存储它的任何地方,我对 Linux 还不太熟悉),使用ssh-keyscan -H x.x.x.x >> ~/.ssh/known_hosts
在该主机上的用户之间共享/镜像该 RSA 指纹容器
配置主机/每个用户在出现以下提示时拒绝/丢弃/拒绝连接,以便
The authenticity of host '[hostname] ([IP address])' can't be established. RSA key fingerprint is [key fingerprint]. Are you sure you want to continue connecting (yes/no)?
- 他们无法连接到任何未完成此过程的服务器,然后
- 对于无法实施上述过程+限制但仍需要远程配置的情况,也许创建一个单独的沙盒用户,以便主要更常用的密码不会被可能的假 SSH 服务器破坏。