背景:我向我的 Web 服务器添加了 OTP 令牌身份验证。我/etc/ssh/sshd_config
使用ForceCommand /token/script
命令修改了文件。
问题:我有一个本地 Jenkins 实例连接到 Web 服务器进行部署;Jenkins 无法输入令牌信息或接听电话(虽然谁知道,我敢打赌甚至有一个插件可以做到这一点!)。
可能的解决方案:使用~/user/authorized_keys
命令参数强制在所有密钥上执行令牌脚本,除了 jenkins 正在使用的密钥之外。
问题:与全局 sshd_config 方法相比,authorized_keys 方法的安全性如何?您认为这是一种可以接受的权衡吗?有没有更好的解决方案(允许 Jenkins 进行从属部署,同时让其他所有人都使用令牌身份验证锁定?)。
我尝试了这两种方法,效果都很好。从部署的角度来看,我发现第二种方法更实用,但它给我带来了一些内部危险信号。我不知道我是不是在追逐幽灵(带着危险信号)。讨论一下!
答案1
使用Match
命令sshd_config
对用户应用jenkins
不同于其他用户的规则:
- 匹配:引入条件块。如果 Match 行上的所有条件都得到满足,则后续行上的关键字将覆盖配置文件全局部分中设置的关键字,直到出现另一个 Match 行或文件末尾。
请参阅sshd_config
手册页以获取完整文档。