![阻止 Jenkins 修改 known_hosts](https://linux22.com/image/638467/%E9%98%BB%E6%AD%A2%20Jenkins%20%E4%BF%AE%E6%94%B9%20known_hosts.png)
我在 CentOS 6 中安装了 Jenkins,其中已知主机文件/var/lib/jenkins/.ssh/known_hosts
位于配置管理之下。
例如,它包含通过主机名获取源代码控制主机的密钥(假设其 IP 为 1.2.3.4:
label.hostname.tld ssh-rsa ABCDEFGHIJKLMNOPQRSTUV
每当 Jenkins 通过 ssh 访问源代码控制主机时,它都会确保将主机的 IP 地址插入到 known_hosts 文件中:
label.hostname.tld ssh-rsa ABCDEFGHIJKLMNOPQRSTUV
1.2.3.4 ssh-rsa ABCDEFGHIJKLMNOPQRSTUV
所以我正在考虑通过 IP 地址为密钥添加一个重复条目,如果我想将所有文件内容置于配置管理之下,这将是一笔额外的开销。
在执行此操作之前,我想知道:有没有办法阻止 Jenkins 这样做?SSH 应用程序本身的配置中是否有某些东西可以阻止这种情况?还是我只能在 Jenkins hosts 文件中的每个命名主机维护两个条目?
答案1
这不是最好的方法,但你可以为该文件添加扩展属性。你可以为文件添加“i”标志,以防止任何人删除或修改它。
可以这样做chattr +i