Создание RSA ключей для доступа на сервер и обеспечения безопасности SSH

Как создать RSA ключи для доступа на сервер и как обезопасить SSH соединение с помощью публичного ключа — именно такими вопросами задаются многие люди, которым приходится работать удаленно с крупными проектами. Действительно, доступ на сервер с помощью ключа RSA — это удобно и полезно с точки зрения безопасности.

Недавно и я столкнулся с такой проблемой, а так как опыта работы в Linux у меня не очень много, то поиск толкового гайда отнял больше времени, чем я думал. Поэтому хочу поделиться полученным опытом и подробно описать шаги для новичков.

Сперва теория. Что нам для этого нужно? Во-первых, создать пару специальных криптографических ключей — открытый и закрытый. (Подробнее об алгоритме RSA можете почитать в Педивикии). Внести изменения в файл настроек сервиса SSH  в Ubunt’e для того, чтобы указать, где искать сам ключ и для того, чтобы запретить авторизацию по паролю (если это нужно).

Список необходимых программ:

  1. WinSCP
  2. PuTTY
  3. PuTTYgen
  4. Pageant

Их все можно скачать со странички разработчика.

Итак, порядок действий.

1. Коннектимся на удаленный сервак с помощью PuTTY.

2. Переходим в директорию /.ssh/. Для этого выполняем команду

 cd ~/.ssh/

3. Собственно, создаем сами ключи. Для этого выполняем:

ssh-keygen  -t  rsa

После выполнения этой команды увидите следующее

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

#нажимаем [ENTER], если хотим оставить созданные ключи в папке /.ssh/
Enter passphrase (empty for no passphrase):
#вводим пароль (или, если не хотите защищать ключи паролем, не вводим и оставляем пустым) и нажимаем [ENTER]
Enter same passphrase again:
#повторяем пароль и опять [ENTER]
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:
2f:33:f6:f7:3f:13:4c:1f:04:9а:18:fa:0d:b2:а4:35 root@Ubuntu-1004-lucid-64-minima

Последние 4-ре строки описывают расположение ключей и рассказывают о нашем fingerprint’e. Это последовательность символов, используемая для аутентификации или поиска более длинного ключа. Подробнее здесь.

И, да. Сам ключ готов и сохранен в директории /.ssh/. Его графическое отображение выглядит так:

RSA ключ

4. После того, как ключ готов, необходимо сделать его копию в новый файл. Для этого выполним команду:

at  id_rsa.pub  >>  authorized_keys

Вместо «authorized_keys» можно ввести любое другое имя файла. Просто в конфигах SSH уже есть закомментированная строчка с указанием именно этого названия.

5. Теперь необходимо выставить правильные права доступа:

chmod -R 600 *        #чтение и запись только для владельца
chmod 700 ~/.ssh/       #чтение, запись и исполнение только для владельца 

6. С помощью WinSCP нужно стянуть файлик id_rsa (не оставляя копии на сервере) к себе на компьютер.

7. Теперь нам пригодятся остальные программы. Нам нужно преобразовать этот ключ в ключ, который понимает PuTTY и WinSCP. Для этого берем ранее скачанную программу PuTTYgen. В пункте меню «Conversions» выбираем «Import key». Далее указываем путь к слитому в 6-м пункте файлику. PuTTYgen спросит нас про пароль (если указывали — укажите и сейчас). И сохраняем новый ключ, нажав на кнопку «Save private key»

Создание RSA ключей для доступа на сервер

Создание RSA ключей

8. Теперь нужно поправить конфиги SSH на сервере. Для этого нужно открыть файл /etc/ssh/sshd_config. Я советую для этого использовать Midnight Commander (в Ubuntu устанавливается apt-get install mc. Открывается просто mc). Идем по указанному адресу, открываем на редактирование конфиг и ищем там следующие строки:

PermitRootLogin yes
(Если будете заходить на сервер под учетной записью root)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile    .ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
UsePAM no

Значения должны быть такими, как сказано выше.

9.  После сохранения отредактированного конфига нужно перезапустить службу SSH (если не уверены в своих действиях, вспомните примету:»Перезапуск SSH — к поездкам» :) ). Для этого выполняем команду:

service ssh restart

10. Теперь открываем Pageant и добавляем созданный на шаге 7 ключ *.ppk.

11. PROFIT!!!1 Теперь, если все было сделано правильно, PuTTY или WinSCP не будут требовать пароль. В дальнейшем не забывайте подгружать Pageant с ключом RSA. И не забудьте сохранить сам ключ в надежном месте :)

 

P.S. если статья была вам полезна, не поленитесь, оставьте, пожалуйста, коммент :) Спасибо.

 

{ Оставить комментарий }

  1. ann

    It has cleaned recently button Facebook

  2. Elliptical Reviews

    I suggest you to add a facebook like button!

  3. ann

    Очень, очень помогло, некоторые моменты были неясны, но Ваш блог спас мне жизнь! Спасибо Вам огромное!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>