登录时定期锁定 ssh 密钥

登录时定期锁定 ssh 密钥

我每天都使用 ssh 登录我管理的几台服务器,并使用 ssh 密钥登录。因为我用密码生成了 ssh 密钥,所以一天中第一次使用 ssh 时,系统会提示我输入密码。我希望它在一天中定期再次锁定,这样在我笔记本电脑开机时访问它的人就不一定能访问服务器。我找不到这个选项,也想不出锁定密钥的命令。如果有这样的命令,我可以将其添加到 crontab。

可能最好的选择就是不使用 ssh 密钥。

答案1

您可能有一个正在ssh-agent运行的程序。当您ssh访问其他主机时,该ssh命令会与其通信ssh-agent以维护密钥及其密码。

默认情况下,系统ssh-agent会永远记住密码(直到注销),因此您只需为每个密钥输入一次。

命令ssh-add用于管理ssh-agent 已知的身份列表。

要显示已知的密钥列表ssh-agent,请发出

ssh-add -l

为了实现它忘记你的密钥和密码,发出

ssh-add -D

当您进入某个主机时ssh,系统将再次提示您输入密码。

也可以提供寿命密码短语:

ssh-add -t 3600     # 1 hour

但这对我来说不起作用(或者我做错了什么)。我设置了一个ssh-add -D每 N 小时执行一次的 cronjob。这可能有点棘手,因为ssh-add需要环境变量SSH_AUTH_SOCK来与 进行通信,ssh-agent并且该变量可能未在 cron 下设置。

但是,正如评论中所说,您外出时不应让笔记本电脑无人看管,而应该将其锁起来。

答案2

您可以在文件中写一行$HOME/.bash_logout,将 SSH 密钥从您的~/.ssh/目录移到另一个目录吗?然后在 中执行相反的操作$HOME/.bash_login

请参阅此帖子了解如何使用 systemd 执行此操作。

相关内容