Настраиваем SSH-доступ по ключу

Все еще используете авторизацию по паролю? Тогда мы идем к вам.

Есть такой часто используемый способ обезопасить свой сервер от злоумышленников и порождения их злого гения (одним из примеров которых является gosh). Конечно, он не является панацеей, но поможет существенно снизить риски. Все нижеописанное верно для Debian Linux, в других дистрибутивах команды и имена файлов могут отличаться, но общий принцип сохраняется.

1. Подготавливаем ключи для каждого пользователя

В принципе, пользователи могут сами сгенерировать ключи и передать один из них (публичный) вам, но если этот вариант вам не похоходит, то ключи на сервере генерируются следующим образом:

su user
ssh-keygen -t rsa

Тип ключа можно задать и dsa, а также задать размер ключа в битах опцией -b <bits>.
В домашнем каталоге пользователя появится директория .ssh с двумя файлами. Тот, который имеет расширение pub, переименовываем в authorized_keys, а другой передаем пользователю и удаляем из каталога.

2. Настройка сервера

В /etc/ssh/sshd_config (путь и имя конфигурационного файла могут отличаться) вносим следующие правки:

Protocol 2
PermitRootLogin no

(не обязательно в данном случае, но это правильное решение – получать права суперпользователя по sudo)

MaxAuthTries 1

(для ключа достаточно одной попытки)

MaxStartups 4

(количество одновременных попыток авторизации всех пользователей, ищется опытным путем)

UseDNS no

(тоже не обязательно, это чтобы при логине время авторизации не затягивалось на 20-40 секунд, особенно актуально для доступа к серверу по локальной сети или через VPN)

RSAAuthentication no

(тонкий момент, тут имеется в виду RSA1, запрещаем)

PubkeyAuthentication yes

(самая главная опция)

AuthorizedKeysFile %h/.ssh/authorized_keys

(оставить как есть, это пути к тем файлам, которые мы сгенерировали)

PasswordAuthentication no
KerberosAuthentication no
GSSAPIAuthentication no

Также неплохо ограничить доступ по принадлежности группе

AllowGroups developers

В принципе, все. Можно перезапустить демон ssh:

service ssh restart

3. Настройка доступа на клиенте

С Windows все довольно просто. Нужен putty и puttygen. С помощью puttygen преобразовываем закрытый ключ в формат ppk и прописываем путь к нему в настройках соединения putty (connection->SSH->Auth).

С Linux все еще проще:

ssh user@server -p <порт> -i <путь_к_файлу_с_секретным_ключом>

 



Источник: http://litecoding.com/2011/09/19/nastraivaem-ssh-dostup-po-klyuchu/

Найти похожие статьи: debian ssh
© Roman Fokin Заметки о Linux
Все зарегистрированные торговые марки, упоминаемые на этом сайте, являются собственностью их владельцев.