Прописываем одинаковые SSH ключи для нескольких аккаунтов

Очень часто возникают ситуации, когда необходимо прописать одни и те же SSH ключи сразу для нескольких учётных записей (но не всех), поэтому в данном HOWTO мы подробно рассмотрим как это следует делать правильно.

Введение

Некоторые администраторы просто копируют в каждый домашний каталог содержимое ~/.ssh/authorized_keys, однако, это неправильно, ибо исключает возможность быстрого удаления например скомпрометированных или добавления новых ключей.

Способ 1. Наиболее правильный.

Создадим специальную группу с любым названием (например, webmasters):

sudo addgroup webmasters

Добавим всех нужных пользователей в нашу группу (вместо user укажите логин нужного пользователя):

sudo adduser user webmasters

Теперь необходимо создать файл с ключами, которые будут разрешены для указанной группы. Сохраните его например как /etc/webmaster_keys (права доступа 644, группа и владелец — root).

Откроем главный конфигурационный файл OpenSSH /etc/ssh/sshd_config в любом текстовом редакторе (я предпочитаю vim):

sudo vim /etc/ssh/sshd_config

В самом конце файла создадим новую группу:

Match Group webmasters
ChrootDirectory %h
AllowTCPForwarding no
AuthorizedKeysFile /etc/webmaster_keys

Здесь мы создаём новую группу, для которой будут разрешены ключевые файлы, прописанные в файле /etc/webmaster_keys. Также для членов группы будет применено chroot-окружение в домашнем каталоге (директива ChrootDirectory) и запрещено перенаправление портов, в т.ч. и SSH-туннелинг (директива AllowTCPForwarding). Если этого вам не требуется — оставьте только AuthorizedKeysFile.

Перезапустите сервис SSH для того, чтобы изменения вступили в силу.

Внимание! Старые версии OpenSSH не позволяют использовать директиву AuthorizedKeysFile внутри групп, поэтому сервис может и не стартовать. В таком случае отмените изменения и перейдите к другому способу.

Способ 2. Для устаревших версий sshd.

Точно также создайте файл с разрешёнными ключами например в /etc/webmaster_keys (права доступа 644, группа и владелец — root).

Создайте симлинки в домашних каталогах нужных пользователей (замените user на логин нужного пользователя):

sudo ln -s /etc/webmaster_keys /home/user/.ssh/authorized_keys

Перезапускать сервис SSH не требуется.