Периодически блокировать ключи 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

но это не сработало для меня (или я сделал что-то неправильно). Я бы настроил cronjob, который делает это ssh-add -Dкаждые N часов. Это может быть немного сложно, потому что для связи с ssh-addнужна переменная окружения , а эта переменная, по-видимому, не установлена ​​в cron.SSH_AUTH_SOCKssh-agent

Но, как сказано в комментарии, не следует оставлять ноутбук без присмотра, пока вы отсутствуете, а лучше заблокировать его.

решение2

Вы могли бы просто написать строку в вашем $HOME/.bash_logoutфайле, которая перемещает ваш ключ SSH из вашего ~/.ssh/каталога в другой каталог? Затем сделайте обратное в $HOME/.bash_login.

Ознакомьтесь с этой статьей о том, как это сделать с помощью systemd.

Связанный контент