只能在一台机器上使用的 SSH 密钥

只能在一台机器上使用的 SSH 密钥

我的要求很简单。我已经在服务器上生成了 SSH 密钥对(公共和私有)“A”。现在,我已在 AWS IAM 中上传了公共 SSH 密钥,并生成了 SSH 密钥 ID 以通过 SSH 连接到 CodeCommit 存储库。在服务器“A”中更新".ssh/config"SSH 密钥 ID 的值和私钥文件的路径后,我应该能够成功连接到存储库,并且我也能够做到这一点。现在我的要求是当我尝试从另一台服务器连接到存储库时“B”(私钥已传输到服务器,文件.ssh/config也更新为与服务器“A”中相同)我不应该能够连接,即密钥对应该仅在它生成的服务器中工作,并且不允许来自任何服务器的连接其他服务器。这可能吗?谷歌搜索后我找不到任何可靠的东西。

答案1

authorized_keys如果遥控器使用常用文件,则可以。

sshd(8)手册页描述authorized_keys文件格式。该文件中可以使用许多选项,其中之一是:

from="pattern-list"

指定除了公钥身份验证之外,远程主机的规范名称或其 IP 地址必须出现在以逗号分隔的模式列表中。请参阅中的模式 ssh_config(5)有关模式的更多信息。

因此,这样的行只允许来自以下位置的访问hosta.example.org

from="hosta.example.org" ssh-rsa AAAA...== [email protected]

尽管我不确定为什么您不为两个客户端主机 A 和 B 创建不同的密钥。这将使控制哪个主机有权访问何处变得非常容易 - 密钥将与主机绑定。

答案2

这是不可能的,因为您已将私钥添加到服务器的 B ssh 配置中。但是,您可以通过其他方式限制对 A 服务器的访问,例如防火墙规则仅允许来自一个 IP 的 ssh 连接。

相关内容