使未使用的 ssh 密钥无效

使未使用的 ssh 密钥无效

我为所有 Subversion 用户使用一个 ssh 帐户。他们将公钥发送给我,然后我将其放在 svn 帐户的 .ssh/authorized_key 中,然后他们可以使用 ssh 隧道从 Subversion 中检出代码。

到目前为止一切正常。但问题是我想使一段时间(比如一个月)未使用的密钥无效。有人知道如何让 sshd 在用户登录时记录公钥吗?

谢谢。

答案1

所有内容都记录在 sshd(8) 的“AUTHORIZED_KEYS FILE FORMAT”部分下。

在 .ssh/authorized_keys2 中,environment="SSHKEY=1"在每一行开头添加类似的内容,因此它应该看起来像:

environment="SSHKEY=1" ssh-dss AAAAB3N ...
environment="SSHKEY=2" ssh-rsa AAAAB3N ...

PermitUserEnvironment在 /etc/ssh/sshd_config 中启用选项并重新启动 sshd。现在您可以echo $SSHKEY >>.sshlog向 ~/.bashrc 添加类似内容来记录使用的 ssh 密钥。

但我认为更简单的方法是备份 authorized_keys2 文件,从中删除所有密钥,然后等待有人打电话/发电子邮件/发短信询问为什么 svn 不起作用。然后您可以恢复他们的密钥,或者如果您不确定哪个密钥属于谁,请他们重新发送密钥给您。作为副作用,您会知道谁在真正工作。:)

答案2

我认为 lastlog 不会很有用,因为 JH 说他只有一个帐户,而有多个真实用户使用不同的密钥登录(我想知道为什么;这样你会在 SVN 中丢失宝贵的作者信息)。

无论如何,至少在我的系统 (Debian/Ubuntu) 中,sshd 默认不记录用于登录的密钥,但似乎可以通过在 sshd_config 中使用“LogLevel Verbose”或类似的东西来强制它这样做。然后,您可以编写/使用一个简单的解析器来记录日志并存储所使用的密钥,并根据该解析器确定所需的信息。

答案3

添加LogLevel VERBOSE到您的 sshd_config
您可能还想更改您的日志周转率,这样您就有了上个月的日志。

注意,它会在日志文件中显示密钥的指纹。您可以使用它ssh-keygen -l来显示密钥文件的指纹。

相关内容