我每天都使用 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
。