Dav*_* I. 11 security unix ssh logging authentication
在工作中,我们在 UNIX 上有一个非 root 共享登录帐户,用于管理特定应用程序。政策是不允许直接登录共享帐户;您必须以自己的身份登录并使用“su”命令切换到共享帐户。这是出于日志记录/安全目的。
我已经开始对代理使用 SSH 公钥/私钥身份验证,以允许我每天输入一次密码,并让代理转发消除一天剩余时间的密码提示。这真的很好。
但是,某些系统已锁定,因此我确实必须使用“su”命令才能访问共享帐户。啊!回到一直输入密码!
是否使用 SSH 公钥/私钥身份验证记录了足够的信息,以便我有合理的机会请求更改策略以在使用公钥/私钥时允许远程登录共享帐户?
我在 /var/log/secure 中进行了管理员查看,它只是说从特定 IP 地址为用户帐户接受了公钥。它没有说明它是谁的公钥,或者谁的私钥进行了身份验证。
小智 6
另一种方法是移出authorized_keys用户范围(例如 to /etc/ssh/authorized_keys),以便只有系统管理员可以控制哪些公钥可用于登录给定帐户。
我们曾经将AuthorizedKeysFile指令更改为sshd_config如下所示的内容。
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
Run Code Online (Sandbox Code Playgroud)
然后/etc/ssh/authorized_keys为每个应该能够登录的用户创建并使用文件填充目录,确保root文件仅对 root 可读/可写,而其他文件可由适当的用户读取,如下所示:
-rw------- 1 root root 1,7K 2008-05-14 14:38 root
-rw-r----- 1 root john 224 2008-11-18 13:15 john
Run Code Online (Sandbox Code Playgroud)
每个文件都包含一组允许登录给定帐户的公钥。每个用户帐户也有一个相应的组是很常见的。
使用公钥/私钥是控制远程用户访问的更好方法。您不必每个月都更改密码(您也不必设置),也不必因为员工离开您的公司而更改密码,只需删除他们的公钥即可;当然,使用 SSH 选项 ( http://www.openbsd.org/cgi-bin/man.cgi?query=sshd&sektion=8#SSHRC),您可以细粒度地确定给定用户可能具有访问权限的内容和位置。