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