问题:
我们有许多dev / qa / prod RH / Solaris服务器,它们之间有多个拥有ssh信任的帐户,包括不同环境中的服务器(prod-> prod,还有qa-> prod)。 我知道这是一个不好的做法,我试图解决它的第一步是要了解哪些帐户可以ssh到哪些其他帐户没有密码框。
我的方法是login到指定服务器列表的shell脚本, sudo通过/ etc / passwd文件获取所有帐户和主目录的列表,查看后者是否存在.ssh和id_rsa.pub和/或id_dsa.pub和authorized_keys并将每个帐户每个帐户的这些信息输出到运行脚本的机器上的stdout 。
用户可以指定一个密钥供ssh使用,这不是默认的事实是一个公认的限制。 (我假设情况并非如此)
然后使用输出创build一个HTML页面,其中包含从上面的输出创build的JavaScript对象{username,machine_name,rsa_key,dsa_key,authorized_keys []},并使用JQuery(或类似的)显示层次结构(tbd如何)。
我的问题是,解决这类问题是否已经存在? 如果没有,我的方法的任何意见将是受欢迎的。
看起来你对自己在这里做的事情有了一个好主意。 logging什么系统可以连接到没有任何密码的东西总是一个好主意。 这样做并不一定是不好的做法,事实上也需要做一些事情,但是如果有人闯入你的一台服务器,你还需要知道它是如何工作的。
一个地方要查看所有服务器上的authentication日志。 这将告诉你当前的脚本/程序实际上正在使用什么键。
SSHd告诉你用户如何login。在日志中你应该看到如下一行:
Accepted publickey for automatedprocess from 123.456.789.012 port 12345 ssh2
查看日志并查找日志所在服务器的所有独特组合,用户名和发件人地址将显示哪些系统正在使用这些密钥。
这也可能给你一个很好的起点,看看哪些不再需要,哪些是自动化程序定期使用。