我正在开发一项自动化功能,它生成允许的公钥列表并覆盖服务器的 user ~./ssh/authorized_keys
。有没有办法防止自动化错误完全阻止我访问主机?我有一些限制,服务器本身来自虚拟机映像,会随着时间的推移而更新,因此创建额外的用户不是我想要追求的。
到目前为止我已经想到:
- 是否有可能组成
authorized_keys
.如果有 2 个文件,我可以拥有一个动态文件和一个具有静态后备密钥的文件。 - 我仍然会在覆盖之前进行测试(例如检查密钥的内容和格式),以确保我没有复制空文件。但仍然可能会出现问题。
组合有可能吗?如果没有,你们还有其他想法吗?
先感谢您。
答案1
sshd
默认情况下已经检查~/.ssh/authorized_keys
和~/.ssh/authorized_keys2
。这可以使用AuthorizedKeysFile
中的选项进行配置/etc/ssh/sshd_config
,该选项可以获取多个文件的列表进行检查。从sshd_config(5)
:
授权密钥文件
指定包含用于用户身份验证的公钥的文件。该格式在 sshd(8) 的 AUTHORIZED_KEYS 文件格式部分中进行了描述。 AuthorizedKeysFile 的参数接受 TOKENS 部分中描述的令牌。扩展后,AuthorizedKeysFile 将被视为绝对路径或相对于用户主目录的路径。可以列出多个文件,并用空格分隔。或者,可以将此选项设置为 none 以跳过检查文件中的用户密钥。默认值为“.ssh/authorized_keys .ssh/authorized_keys2”。