RHEL 6.8, у меня есть пользователь, аутентифицированный локально, и я не совсем уверен, что у этого пользователя уже установлены логины на основе ключей с другого узла для подключения к рассматриваемому узлу.
Я подумываю восстановить ключи ssh для пользователя, чтобы предотвратить его вход в систему с использованием ранее настроенных ключей.
У меня есть "root" доступ к узлу. Какой' s лучший способ ограничить вход на основе ключа, который был бы установлен, но сохранить ту же учетную запись для других служб, для которых мы в настоящее время используем учетную запись.
По умолчанию список ключей, которые пользователь может использовать для входа на любой конкретный узел, хранится в $ HOME / .ssh / authorized_keys
на узле, который регистрируется. в.
Закрытый ключ, который пользователь использует для установления соединения, хранится в узле, который инициирует соединение.
Если вы хотите предотвратить вход пользователя в систему с использованием определенного ключа, вы можете просто удалить его из их файл authorized_keys
. Но имейте в виду, что пользователь всегда может вернуть его обратно, если он может войти в этот узел или иным образом получить доступ к этому файлу. Вы также можете изменить путь к файлу авторизованных ключей, установив AuthorizedKeysFile
в / etc / ssh / sshd_config
в файл, к которому пользователь не может получить доступ.Но имейте в виду, что это будет применяться ко всем пользователям.
Что касается определения того, как пользователь аутентифицировался, эта информация находится в вашем файле журнала / var / log / secure
. Например:
# grep Accepted /var/log/secure
Nov 26 03:13:46 www sshd[13925]: Accepted password for user1 from 203.0.113.242 port 3481 ssh2
Nov 26 03:20:22 www sshd[14216]: Accepted publickey for dev2 from 198.51.100.21 port 64386 ssh2: RSA SHA256:...omitted...
Если вы хотите контролировать, какие ключи используются для входа в систему, вы должны контролировать файл со списком авторизованных ключей, поэтому вы не должны позволять пользователям управлять им. Вместо того, чтобы копаться в файлах в пользовательских каталогах, вы должны использовать соответствующие элементы конфигурации ssh, которые будут работать, например:
AuthorizedKeysCommand
: программа, действующая как фильтр для ключей, которые будут использоваться AuthorizedKeysFile
: файл, в котором разрешено использование ключей, вы можете указать абсолютный путь вне управляемых пользователем каталогов Кроме того, не понимая 100% вашего варианта использования, но вы можете взглянуть на сертификаты вместо ключей, потому что с сертификаты вы можете указать срок действия и убедиться, что срок действия некоторых учетных данных истечет. См. Параметр -V
в ssh-keygen
.
Пользователь может редактировать свой собственный файл authorized_keys, чтобы любые внесенные вами изменения можно было отменить. Чтобы предотвратить это, вы можете изменить файл authorized_keys, чтобы он был доступен только для чтения, а затем измените атрибуты каталога и файла, чтобы сделать их неизменяемыми. Это предотвратит внесение пользователем изменений в файл авторизованных ключей, но все же позволит ему войти в систему.
Шаги
например, предположим, что имя пользователя - «hogan» и вошел в систему как root:
#cd ~hogan/.ssh
#vim authorized_keys
[ do your edits and save ]
#chmod 400 authorized_keys
#chattr +i authorized_keys
#cd ..
#chattr +i .ssh