Создание RSA ключей
Итак, сегодня я хотел бы рассмотреть такую сильную меру по защите удаленного Unix сервера, как создание RSA ключей. Это позволит нам инициировать безопасное SSH соединение через программу Putty, без ввода пароля пользователя.
Я считаю что это просто, удобно и сильно повышает безопасность удаленного хоста.
Что для этого нужно?
1. Создание пары специально сгенерированных криптографических ключей: открытый и закрытый.
2. SSH-клиент Putty для удаленного доступа к серверу, или WinSCP – для передачи файлов на сервер, Pageant – SSH-агент для аутентификации, Puttygen – генератор RSA/DSA ключей.
В своей статье я подробно рассмотрю создание ключей для Linux (CentOS). Для FreeBSD все делаем по аналогии, за небольшими исключениями, например команда на перезагрузку службы sshd выглядит так
:
server# /etc/rc.d/sshd restart
Итак приступаем:
1. Переходим в директорию SSH:
[root@centos ~]# cd .ssh/
2. Создаем ключи:
[root@centos .ssh]# ssh-keygen -t rsa
Далее нам предлагают ответить на несколько вопросов:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): (по умолчанию ключи создаются в папке .ssh/)(здесь жмем ENTER, если вы не хотите сохранить их в другом месте)
Enter passphrase (empty for no passphrase): (здесь вводим парольную фразу для ключа)
Enter same passphrase again: (повторяем фразу)
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8c:6a:00:aa:78:ad:fb:70:d5:8c:d9:b8:6a:da:a4:f5 root@centos
Ключ готов и сохранен в директории .ssh/
3. Копируем содержимое открытого ключа в новый, создаваемый файл – authorized_keys:
[root@centos .ssh]# cat id_rsa.pub >> authorized_keys
4. Выставляем права на директорию .ssh/, и все что в ней находится:
[root@server-dhcp .ssh]# chmod -R 600 *
[root@server-dhcp .ssh]# chmod 700 ~/.ssh/
5. Теперь с нашего сервера из папки .ssh/ забираем с помощью WinSCP или любого другого ftp-клиента, на компьютер с которого будет производиться удаленный доступ, закрытый ключ – id_rsa.
6. Далее нам необходимо преобразовать наш закрытый ключ, в ключ поддерживаемый Putty. Делаем это с помощью Puttygen.
Импортируем ключ
Вводим парольную фразу
Сохраняем наш новый ключ
7. Теперь возвращаемся на наш сервер и редактируем конфигурационный файл ssh, для поддержки работы с RSA ключами и отключения парольного доступа.
[root@centos ~]#vi /etc/ssh/sshd_config
Далее находим в нем следующие строки , и указываем такие значения (если файл закомментирован, то раскомментируем его):
PermitRootLogin yes (Если будете заходить на сервер под учетной записью root)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
UsePAM no
8. Сохраняем изменения и перезапускаем службу sshd.
[root@centos ~]#service sshd restart
9. Далее открываем Pageant, и добавляем в него наш новый ключ сделанный ранее в Puttygen. В процессе добавления Pageant спросить нас парольную фразу.
10. Заходим через Putty или WinSCP на наш сервер. Если все сделали правильно, достаточно ввести только имя пользователя.
Ссылки:
Здесь можно почитать о том как сделать DSA ключи.

