Как создать SSH-ключ для безопасного управления удаленным сервером
Иногда может потребоваться указать при настройке сервера свой ssh-ключ. В материале расскажу что это такое и зачем это нужно. Приведу короткую инструкцию по его созданию для MacOS и Windows.
Что такое SSH-ключ
SSH — это интерфейс удаленной командной строки. Физически позволяет вводить команды на своем компьютере, но выполняться они будут на удалённом. Именно поэтому SSH необходим для работы с виртуальными серверами — они вообще находятся вне досигаемости: приехать на место установки компьютера и подключиться к нему невозможно.
SSH-ключи состоят из двух частей: приватной и публичной.
Приватная часть— должна оставаться в секрете и никому не быть доступной. Она используется для расшифровки данных, которые мы получим от удаленного сервера.
Публичная часть — может быть передана куда угодно. Передаётся удаленному серверу и будет использована им для шифрования данных.
Благодаря такой структуре данные, несмотря на то, что они передаются по незащищенным каналам связи (интернет) остаются недоступны для расшифровки.
Настройка SSH-ключей на MacOS
Обычно ssh ключи находятся по адресу /Users/{username}/.ssh
Можно просто запустить терминал (обычно терминал открывается именно в домашней категории пользователей) и ввести команду
ls -a
Если в списке нет директории категории .ssh создадим её командой
mkdir .ssh
Далее можно вызвать в этой директории команду генерации ssh ключа:
ssh-keygen -t rsa -f db_rsa
В данном примере db_rsa — это название ключа. А rsa — название алгоритма шифрования. Берет свои истоки из имен создателей алгоритма сквозного шифрования: Rivest—Shamir—Adleman, имена трех ученых — Рональда Ривеста, Ади Шамира и Леонарда Адлемана, которые впервые описали этот алгоритм в 1977 году.
Последует вывод:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/master/.ssh/id_rsa): <**ENTER YOURS SSH KEY NAME HERE**>
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
.............
В директории появятся два файла — приватный и публичный ключи.
Получившийся ключ я рекомендую надёжно сохранить таким образом, чтобы он был недоступен публично и при этом мог пережить смену или утрату ноутбука.
В директории появятся два файла: rsa и rsa.pub. Содержимое rsa.pub и есть публичный ключ, который можно передавать при настройке удаленного сервера.
Настройка SSH-ключей на Windows
В Windows для генерации ключей используются программы:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
или Open SSH для Windows 10+ https://learn.microsoft.com/ru-ru/windows/terminal/tutorials/ssh
Как подключаться к удалённому серверу с помощью SSH
Для MacOS:
переходим в директорию .ssh и подключаемся из неё, или надо будет вводить полный путь к ключу.
ssh -i YOUR_PRIVATE_KEY_TRACE username@ip.adr.es.ss
Для Windows:
ssh username@ip.adr.es.ss -i C:\Users\user\.ssh\YOUR_PRIVATE_KEY