Я ежедневно использую ssh для входа на пару серверов, которыми я управляю, и для входа использую ключ ssh. Поскольку я сгенерировал свой ключ ssh с паролем, при первом использовании ssh за день мне предлагается ввести пароль. Я хочу, чтобы это периодически блокировалось снова в течение дня, чтобы кто-то, получающий доступ к моему ноутбуку, когда он включен, не обязательно получал доступ к серверам. Я не могу найти вариант для этого, и я также не могу найти команду для блокировки ключа. Если есть такая команда, я мог бы добавить ее в crontab.
Вероятно, лучший вариант - просто не использовать ssh-клавишу.
Вы можете просто написать строку в своем файле $HOME/.bash_logout
, которая перемещает ваш SSH-ключ из вашего каталога ~/.ssh/
в другой каталог? Затем сделайте обратное в $HOME/.bash_login
.
Возможно, у вас запущена программа под названием 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
нужна переменная окружения SSH_AUTH_SOCK
для связи с ssh-agent
, и эта переменная предположительно не установлена в cron.
Но, как указано в комментарии, вы не должны оставлять свой ноутбук без присмотра, пока вы в отъезде, а вместо этого заблокировать его.