Подключение к серверу с использованием SSH-ключей
Отправлено Support Notification в 17 May 2017 10:42
|
|
При создании любого виртуального Linux-сервера в нашей системе, как VPS, так и Облачного сервера, для него сразу же настраивается подключение по SSH с авторизацией по логину и паролю. Однако при такой авторизации, особенно если пароль не слишком сложный (и удобный для ввода), сервер может оказаться уязвимым для взлома злоумышленниками. Для исключения подобных уязвимостей рекомендуется использовать авторизацию с помощью SSH-ключей. SSH-ключи представляют собой математически взаимосвязанную пару криптографических ключей, открытый и закрытый, использующихся для аутентификации на сервере. Взаимосвязь носит односторонний характер - по закрытому ключу легко вычисляется открытый, но по открытому ключу вычислить закрытый в обозримый промежуток времени с помощью доступных на настоящий момент вычислительных ресурсов невозможно. Открытый ключ помещается вами на сервер. Закрытый ключ хранитcя на вашей локальной машине. При подключении сервер сверяет ключи и, при их соответствии, предоставляет доступ. Обратите внимание! Никогда и никому не предоставляйте ваш закрытый ключ. Человек, имеющий доступ к вашему закрытому ключу будет иметь доступ к вашему серверу.
Рассмотрим подключение к Linux-серверу с помощью SSH-ключей с машин с операционными системами Linux и Windows подробно.
Подключение с Linux-машинПервым делом вам необходимо сгенерировать пару из закрытого и открытого ключа на вашей локальной машине. Есть ряд критпографических алгоритмов, позволяющих сделать это. Как правило рекомендуется использовать ключи RSA. Для генерации пары RSA-ключей, выполните команду:
Утилита спросит вас, куда сохранить создаваемый закрытый ключ. По умолчанию (если нажмете ENTER), ключ будет сохранен в папку .ssh вашего домашнего каталога.
Следующим шагом вам будет предложено установить пароль на закрытый ключ.
Пароль будет запрашиваться при каждом использовании этого закрытого ключа. Установка пароля необязательна (можно просто нажать ENTER), но необходимо учесть, что любой человек, к которому попадет не защищенный паролем закрытый ключ, сможет получить доступ к вашему серверу. Если вы решите установить пароль, во время его ввода не будет отображаться ничего, даже звездочек. Забытый пароль восстановить возможности не будет. При его утере придется генерировать новый ключ. Установив (или не установив) пароль, вы завершите процедуру генерации SSH-ключей. Если в процессе не указывали иного, создадутся следующие файлы:
Теперь вам необходимо скопировать открытый ключ на сервер. Для этого необходимо выполнить следующую команду:
Где username - имя пользователя на сервере, для которого создается подключение по SSH-ключам, server - IP-адрес вашего сервера. Вам понадобится ввести пароль этого пользователя. После этого содержимое локального файла ~/.ssh/id_rsa.pub будет добавлено в файл ~/.ssh/authorized_keys домашнего каталога соответствующего пользователя на сервере. Теперь вы можете авторизоваться на сервере с помощью SSH-ключей с помощью команды:
Подключение с Windows-машинДля подключения к Linux-серверу с компьютера, на котором стоит ОС Windows понадобится дополнительное программное обеспечение, а именно бесплатный SSH-клиент PuTTY. С помощью него вы сможете сгенерировать пару ключей и скопировать открытый ключ на сервер. Начнем с генерации ключей. Она выполняется утилитой puttygen. Запустив ее, выберите тип ключа SSH-2 RSA и нажмите кнопку "Генерировать". Генератор попросит вас поводить мышкой внутри окна (для получения программой случайных значений). Делайте это до тех пор, пока не сформируются ключи. В графы "Парольная фраза" и "Повторить пароль" вы можете ввести пароль, которым будет защищен ваш закрытый ключ. Этот пароль будет запрашиваться при каждом использовании закрытого ключа. Установка пароля необязательна, но необходимо учесть, что любой человек, к которому попадет не защищенный паролем закрытый ключ, сможет получить доступ к вашему серверу. Забытый пароль восстановить возможности не будет. При его утере придется генерировать новый ключ. Сохранить созданные ключи можно, нажав на кнопки "Открытый ключ" и "Личный ключ" соответственно как id_rsa.pub и privatekey.ppk, в папку, где находятся утилиты PuTTY.
Теперь необходимо скопировать открытый ключ на сервер. Эту операцию выполняет утилита psftp. В открывшемся окне утилиты введите команду
где server - IP-адрес вашего сервера. Согласитесь, если утилита предложит сохранить текущий ключ в кэше. Затем авторизуйтесь по логину и паролю вашего сервера и введите команду
psftp сообщит, что файл скопирован на сервер:
Следующий шаг - добавление скопированного ключа в файл ~/.ssh/authorized_keys Для этого необходимо запустить сам клиент putty, авторизоваться на сервере (VPS или облачном) с помощью имени пользователя и пароля, и выполнить команду
Где username - имя пользователя на сервере, для которого создается подключение по SSH-ключам.
Последний шаг - добавить ваш ключ в SSH-агент. Запустите утилиту pageant. Она будет запущена в трее. Кликните правой кнопкой на ее иконку и в открывшемся меню выберите "Добавить ключ". Укажите путь до ранее созданного файла ключа privatekey.ppk. Если при генерации вы устанавливали на него пароль, здесь система запросит этот пароль. После его ввода ключ будет добавлен. Теперь при указании этого имени пользователя при подключении к вашему VPS или облачному серверу через PuTTY, вы будете автоматически авторизоваться с помощью установленных SSH-ключей:
| |
|