SSH-ключи генерация и использование

| Понедельник, 17 декабря, 2018

Метки: Безопасность Комментарии: 0

Ключи SSH часто применяются для авторизации при работе с протоколом SSH, используемом для управления удалёнными узлами в сети. SSH надёжно шифрует передаваемые пароли и интернет-трафик. Поскольку парольная защита может быть легко уязвима, если пароль не самый сложный, то для авторизации по SSH был предусмотрен режим авторизации по ключу.

Когда говорят о SSH-ключах, то имеется в виду пара ключей: приватный ключ и его так называемый «слепок» или «отпечаток» - публичный ключ, на английском упоминается как «fingerprint». Идея авторизации по SSH-ключам состоит в том, что с помощью публичного ключа, который должен храниться на удалённом узле (сервере SSH) информация зашифровывается, а приватным ключом, который должен быть доступен только его владельцу и только на клиентской машине — расшифровывается. А откуда же приватный ключ знает, что поступившую от сервера зашифрованную информацию он способен и должен расшифровать? Всё очень просто — публичный ключ, как отмечалось выше, является цифровым «слепком» или «отпечатком» приватного ключа. SSH-ключи создаются или правильнее сказать, генерируются в паре, один из которых всегда является «отпечатком» другого. Именно по этому отпечатку в присылаемом от сервера сообщении приватный ключ и распознаёт, что соединение устанавливается с узлом, на котором «свои», а не «чужаки». Для того, чтобы авторизация по ключам работала, необходимо публичный ключ (его содержимое) поместить в специально предназначенный файл на сервере — authorized_keys. Обычно этот файл расположен по адресу ~/.ssh/authorized_keys. Символ «~» означает домашний каталог пользователя.

Сгенерировать ключи можно при помощи утилиты PuTTYgen (Windows, Linux), входящей в комплект PuTTY, либо воспользоваться командой ssh-keygen в консоли Linux. В первом случае, как можно догадаться, всё выполняется посредством графического интерфейса. Также нужно заметить, что PuTTY генерирует ключи формата PPK, а команда ssh-keygen – в формате openSSH. Это необходимо учитывать при генерации ключей, поскольку не все клиенты, поддерживающие авторизацию по ключам поддерживают оба формата. Но даже если получилось так, что у имеющегося ключа формат не поддерживается клиентом, то можно воспользоваться инструментом импорта/экспорта, предоставляемый всё той же утилитой PuTTYgen, и который доступен в главном меню под пунктом «Conversions».

Генерация ключей с помощью утилиты PuTTYgen никакого труда не составляет, интерфейс простой и интуитивно понятный.

В Linux после ввода команды ssh-keygen в консоли, пользователю будет предложено указать место хранения ключей и здесь можно оставить предлагаемый по умолчанию вариант: ~/.ssh/. По умолчанию у публичного ключа будет имя id_rsa.pub, у приватного — id_rsa. Далее будет предложено ввести для приватного ключа парольную фразу. Это нужно для того, чтобы ключом мог воспользоваться только его владелец. Но эта опция необязательна, парольную фразу можно оставить пустой. Затем будет сгенерирована пара ключей, которые автоматически сохранятся в указанный каталог. Этот каталог не должен иметь прав на запись. Теперь, после размещения публичного ключа на сервере можно устанавливать SSH-соединение с авторизацией по ключу, выполнив команду ssh username@host, где «username» - имя пользователя для авторизации, а «host» - IP-адрес или имя узла/сервера. Утилита ssh сама найдёт в папке ~/.ssh/ (т. к. это каталог по-умолчанию) нужный ключ для авторизации.

При использовании SSH-клиентов в Windows во время создания/сохранения подключения нужно просто указать путь к ключу — это стандартная процедура для всех SSH-клиентов под Windows. Нужно помнить, что ключи форматов PPK и openSSH обратной совместимости не имеют. На сервере и у клиента должны быть ключи одного формата.

Комментарии
Никто еще не оставил здесь комментарий.
Войдите, чтобы написать комментарий , или воспользуйтесь формой ниже.
 

Copyright © CodeHint.ru 2013-2019