
На моем сервере есть несколько публичных ключей SSH в формате ~/.ssh/authorized_keys
.
Я хотел бы временно заблокировать/отключить/деактивировать один ключ. Я хочу запретить пользователю входить в систему с помощью этого ключа сейчас. но я могу захотеть снова включить его позже (т. е. я не хочу полностью удалять ключ).
Каков правильный/рекомендуемый способ сделать это?
Мне просто добавить комментарий #
в начале строки authorized_keys
перед ключом?
Для ясности, я не хочу блокировать конкретного пользователя. Одна учетная запись пользователя используется несколькими людьми, каждый из которых подключается со своим собственным ключом SSH. Я хочу заблокировать один конкретный ключ SSH.
решение1
Вы можете добавить к клавише префикс с принудительной командой, которая сообщает пользователю, что происходит. Например:
restrict,command="printf 'Your key has been disabled\n'" ssh-rsa AAAAB2...19Q== [email protected]
или для Openssh до версии 7.2:
command="printf 'Your key has been disabled\n'",no-pty,no-port-forwarding ssh-rsa AAAAB2...19Q== [email protected]
Затем они получают:
$ ssh servername
PTY allocation request failed on channel 0
Your key has been disabled
Connection to servername closed.
решение2
Да, вы можете просто поставить #
(или любой другой символ, если первоначальная запись, например, ssh-rsa
больше недействительна) перед соответствующей строкой.
Если вы это сделаете, и система также позволяет вводить пароль с помощью простого текста, пользователю будет предложено ввести пароль для входа. Поэтому вы можете проверить, нет ли (известного) пароля, связанного с учетной записью.