Что такое SSH
Что такое SSH-ключ: генерация и авторизация
Если вы используете сервисы Rusonyx и решаете вопросы технической поддержки IT-инфраструктуры, наверняка вы сталкивались с понятиями SSH-доступ и SSH-ключ. Давайте рассмотрим подробнее, что это за инструмент, для чего он нужен и главное – как его грамотно использовать.
Определение SSH-ключей и их основная функция
SSH-ключи необходимы для создания шифрованного протокола вашей связи с сервером без использования логинов и паролей. Сама генерация SSH-ключа – процесс довольно простой, если учитывать важные детали, о которых мы еще расскажем, а вот взломать осуществляемый с их помощью доступ к серверу – практически невозможно.
![post img](https://bc.rusonyx.ru/storage/n6AfZopkAOlqu6ppT2boX8hfFp9jGh90vWh6t3mD.jpg)
Публичные и приватные SSH-ключи
Различают публичные (открытые) SSH-ключи и приватные. Работают они в паре по принципу замка и ключа, где публичный SSH-ключ играет роль замка, а приватный ключ SSH является своеобразным ключом.
Публичный SSH-ключ, как становится ясно из его названия, доступен всем, и используется непосредственно для шифрования данных при обращении к серверу. Открытый ключ SSH после генерации отправляется на нужный сервер и размещается в файле authorized_keys. Так как открытый ключ SSH – это лишь «замок», переживать о том, что он может попасть в распоряжение злоумышленников не стоит – без «ключа» в виде приватного SSH от него все равно ничего не добиться и никакой выгоды не извлечь.
Совсем иначе стоит оберегать приватный ключ SSH, вот он, попав к недоброжелателям, может привести к утечке данных и другим плачевным последствиям, ведь он необходим для расшифровки зашифрованного открытым ключом протокола связи с сервером. И если мы говорим о том, что сам по себе SSH-доступ не предполагает наличия логинов и паролей, то вот приватный SSH-ключ можно и нужно защищать паролем в качестве дополнительной меры безопасности.
Генерация SSH-ключей
Узнав подробнее о видах SSH-ключей, перейдем к следующему важному этапу – это создание SSH-ключа.
Итак, как создать SSH-ключ? Генерация SSH-ключа как процесс различается для разных видов операционных систем.
![post img](https://bc.rusonyx.ru/storage/6JZyrwSBdE2OKjstcXTOjLJ7bgmMDf1xSfaCSGY0.jpg)
Для OC на базе Linux сгенерировать SSH-ключ можно с помощью терминала, а именно:
• Запустите терминал:
в Unity (Ubuntu): «Главное меню» — в поисковой строке введите слово «Терминал» или введите комбинацию Ctrl+Alt+T;
в Xfce (Xubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал»;
в KDE (Kubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал».
• Введите команду ssh-keygen и нажмите Enter. А в случае, когда ssh-keygen не обнаруживается автоматически, установите пакет openssh.
• Нажмите Enter, если хотите, чтобы файл был сохранен в директории по умолчанию. Или введите собственные адрес/имя_файла, чтобы ключ был сохранен в другой конкретной директории.
• Вам предложат ввести кодовое слово для дополнительной защиты ключа. Вы можете пропустить данный шаг и нажать Enter. Для дополнительной безопасности стоит указать кодовое слово, но важно помнить, что при обращении на сервер оно будет дополнительно запрашиваться и сохраняться на некоторое время.
• После генерации ключа в папке .ssh будут созданы два файла: id_rsa (приватный ключ) и id_rsa.pub (публичный ключ). В терминале будет отображаться отпечаток сгенерированного ключа.
• Введите команду cat ~/.ssh/id_rsa.pub . В терминале откроется файл с вашим публичным ключом
Для OC Windows генерация SSH-ключа осуществляется следующим образом:
• Вам необходимо скачать SSH-клиент PuTTY на официальном сайте https://www.putty.org/. Это необходимо, потому что в его состав входит специальная программа для генерации ключей PuTTYgen.
• Следующий шаг – запустите PuTTYgen и нажмите кнопку Generate.
• Сдвиньте свой курсор в окне программы для сбора случайных данных. Индикатор загрузки отображает процесс генерации ключа.
• После того как ключ будет создан, программа отобразит информацию с публичным ключом и отпечатком приватного ключа.
• Скопируйте публичный ключ из окна Key и сохраните его на локальном компьютере. Приватный ключ можно сохранить с помощью кнопки Save private key.
Для устройств на базе macOS снова используем терминал:
• Запустите терминал, нажав Command (⌘) + Пробел, введите в поисковой строке Терминал и нажмите Enter.
• Введите команду ssh-keygen -t rsa и нажмите Enter.
• Чтобы сохранить файл в директории по умолчанию, нажмите Enter.
• Вам предложат ввести кодовое слово для дополнительной защиты подключения. Вы можете пропустить данный шаг и нажать Enter. Мы же настоятельно рекомендуем не пренебрегать этой мерой безопасности, но помнить, что кодовое слово будет дополнительно запрашиваться при каждом подключении к серверу.
• Повторите пароль или нажмите Enter, если вы пропустили предыдущий шаг.
• После успешной генерации ключа будет создано два файла: id_rsa (приватный ключ) и id_rsa.pub (публичный ключ). В терминале будет отображаться отпечаток ключа и его изображение.
Использование SSH-ключей для авторизации
Осуществить SSH подключение по ключу также достаточно просто. Как мы говорили ранее, необходимо добавить публичный ключ на нужный сервер. Сам процесс также зависит от используемой вами OC.
![post img](https://bc.rusonyx.ru/storage/LPQb2F1Py8hdlehGdyrSUg8Y5lDvdy2D0V0UY3Az.jpg)
Для Linux-подобных систем процесс происходит так:
• Запустите терминал:
• Введите команду: ssh-copy-id root@123.123.123.123,
где root — логин вашего сервера,
123.123.123.123 — IP-адрес сервера. Его можно узнать в информационном письме, которое было отправлено вам после создания сервера.
• Нажмите Enter и введите пароль от вашего сервера. После успешного подключения ваш ключ будет добавлен на сервер, и вы сможете подключаться к нему без обязательного ввода пароля.
Для ОС Windows
• Все действия нужно выполнять на сервере через подключение по SSH с помощью SSH-клиента PuTTY.
• Создайте папку .ssh с помощью команды mkdir .ssh.
• Измените права доступа к папке с помощью команды chmod 700 .ssh и перейдите в неё с помощью команды cd .ssh.
• Создайте файл с вашим публичным ключом при помощи команды echo your_public_key authorized_keys.
• Добавьте ваш приватный ключ в PuTTY:
Для macOS
• Запустите терминал. Для этого нажмите комбинацию клавиш Command (⌘) + Пробел, введите в поисковой строке Терминал и нажмите Enter.
• Введите команду: ssh-copy-id user@123.123.123.123, где:
user — имя пользователя;
123.123.123.123 — IP-адрес сервера. Его можно узнать в информационном письме, которое было отправлено вам после создания сервера.
• Нажмите Enter и введите пароль от вашего сервера. После успешного подключения ваш ключ будет добавлен на сервер и вы сможете подключаться к серверу без обязательного ввода пароля.
Настройка и управление SSH-ключами в Rusonyx
Мы ценим ваш комфорт и ваше время, поэтому на облачных серверах Rusonyx вам доступна SSH авторизация по ключу. Однако мы ставим в приоритет и безопасность ваших проектов, поэтому убедительно рекомендуем добавлять кодовое слово при генерации приватного ключа, чтобы ssh доступ по ключу был максимально защищенным.
![card 1](https://bc.rusonyx.ru/storage/6JxRO8Q6PZpivrnsuurXyJbWYT2i3V6PfLkmg2aN.jpg)