我为我的所有Subversion用户使用一个ssh帐户。 他们把我的公钥发给我,我把它们放在svn帐户的.ssh / authorized_key中,然后他们可以使用ssh隧道从Subversion检出代码。
到目前为止一切正常。 但问题是,我想使一段时间没有使用的密钥(比如一个月)失效。 有没有人知道一种方式,使用户login时,sshdlogin公钥?
谢谢。
一切都logging在sshd(8),在“AUTHORIZED_KEYS文件格式”部分。
在.ssh / authorized_keys2中,在每一行的开头添加一些像environment="SSHKEY=1" ,所以应该如下所示:
environment="SSHKEY=1" ssh-dss AAAAB3N ... environment="SSHKEY=2" ssh-rsa AAAAB3N ...
在/ etc / ssh / sshd_config中启用PermitUserEnvironment选项并重新启动sshd。 现在你可以添加echo $SSHKEY >>.sshlog这样的东西来logging用过的ssh密钥〜/ .bashrc。
但是我觉得很简单的办法就是备份authorized_keys2文件,从中删除所有的密钥,等到人们拨打/ email / im你问为什么svn不工作。 然后,如果您不确定哪个密钥属于谁,则可以恢复密钥或要求他们重新发送密钥给您。 作为副作用,你会知道谁真的在工作。 🙂
我认为lastlog不会很有用,因为JH说他只有一个帐号,有多个真正的用户使用不同的密钥login(我想知道为什么;您将以这种方式在SVN中失去宝贵的作者信息)。
无论如何,至less在我的系统(Debian / Ubuntu)中,sshd不会默认logging用于login的密钥,但是似乎可以强制这样做,通过使用“LogLevel Verbose” sshd_config中。 然后,您可以编写/使用一个简单的parsing器来使用日志和存储密钥,并根据您需要的信息来确定。
将LogLevel VERBOSE添加到您的sshd_config
您可能还想更改您的日志stream量,因此您有上个月的日志。
注意它会在日志文件中显示密钥的指纹。 您可以使用ssh-keygen -l来显示密钥文件的指纹。