Как сгенерировать открытый/закрытый SSH-ключ в Linux
Если вы часто используете ssh для подключения к удаленному хосту, одним из способов обеспечения безопасности соединения является применение открытого/закрытого SSH-ключа, так как при этом по сети не передается никакой пароль и система устойчива к атакам методом «грубой силы».
Создать открытый/закрытый SSH-ключ в Linux очень просто.
1. Откройте терминал. Введите:
Альтернативой является использование для создания ключа технологии DSA (Digital Signing Algorithm):
Примечание: Было много дебатов о том, что безопаснее, DSA или RSA. По моему мнению, если только вы не любитель копаться в технических подробностях, большой разницы между этими технологиями нет. Обе работают хорошо.
2. На нижеследующем скриншоте вы видите предложение указать место для сохранения ключа. По умолчанию это папка .ssh в вашей домашней директории. Для того, чтобы согласиться с настройками по умолчанию, просто нажмите «Enter».
3. Далее, вас попросят ввести идентификационную фразу. Это не идентификационная фраза для соединения с удаленным хостом. Это идентификационная фраза для разблокировки закрытого ключа, поэтому она не поможет вам получить доступ к удаленному серверу, даже если на нем хранится ваш закрытый ключ. Ввод идентификационной фразы не является обязательным. Чтобы оставить ее пустой, просто нажмите «Enter».
4. Теперь ваши открытый и закрытый SSH-ключи должны быть сгенерированы. Откройте файловый менеджер и перейдите в директорию .ssh. Вы должны увидеть два файла: id_rsa и id_rsa.pub.
5. Загрузите файл id_rsa.pub в домашнюю директорию вашего удаленного хоста (предполагается, что удаленный хост работает под Linux). Подключитесь к удаленному хосту с помощью SSH и переместите открытый ключ в его целевую директорию с помощью команд:
6. Оставаясь на удаленном хосте, откройте конфигурационный файл SSH:
Убедитесь, что следующие атрибуты имеют корректные значения:
Нажмите «ctrl + o», чтобы сохранить изменения, затем «ctrl + x», чтобы закрыть файл.
7. И последнее, перезапустите сервер SSH на удаленном хосте:
На этом все. Теперь вы можете соединяться со своим удаленным хостом с помощью команды:
linux-notes.org
Сгенерировать открытый/закрытый SSH ключ в Unix/Linux
Подключение к серверу может быть различным, но одно из самых безопастных — это использования закрытого/открытого SSH-ключа, т.к при этом по сети не передается никакой пароль и система устойчива к атакам методом «грубой силы». Ничего нового я в этой теме не опишу, но для новичков — будет полезно. Та вообще, в качестве заметке — может пригодится кому-то.
Сгенерировать открытый/закрытый SSH ключ в Unix/Linux
Имеется 2 основных технологии по шифрованию ключей:
- RSA (аббревиатура от фамилий Rivest, Shamir и Adleman) — криптографический алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел.
- DSA (англ. Digital Signature Algorithm — алгоритм цифровой подписи) — криптографический алгоритм с использованием открытого ключа для создания электронной подписи, но не для шифрования (в отличие от RSA и схемы Эль-Гамаля). Подпись создается секретно, но может быть публично проверена. Это означает, что только один субъект может создать подпись сообщения, но любой может проверить её корректность. Алгоритм основан на вычислительной сложности взятия логарифмов в конечных полях.
- ecdsa -новый алгоритм цифровой подписи (DSA), разработанный правительством США с использованием эллиптических кривых. Вероятно, это хороший алгоритм для текущих приложений. Поддерживаются только три размера ключа: бит 256, 384 и 521. Мы рекомендуем всегда использовать его с 521 битом.
- ed25519 — это новый алгоритм, добавленный в OpenSSH. Поддержка этого в клиентах еще не является универсальной. Таким образом, его использование в приложениях общего назначения, возможно, еще не рекомендуется.
Есть много споров насчет того, что более секурнее, DSA или RSA. Но выбор по использованию за вами.
Генерация открытого/закрытого SSH ключ с RSA шифрованием в Unix/Linux
Откройте терминал. Введите:
Он сгенерирует ключ и положит в стандартную папку (
/.ssh). Можно указать какую битность использовать:
Для более удобного использования, я создам файл с именем котороя я задам сам, например:
Генерация открытого/закрытого SSH ключ с DSA шифрованием в Unix/Linux
Альтернативой является использование для создания ключа технологии DSA (Digital Signing Algorithm):
Он сгенерирует ключ и положит в стандартную папку (
/.ssh). Можно указать какую битность использовать:
Для более удобного использования, я создам файл с именем котороя я задам сам, например:
Генерация открытого/закрытого SSH ключ с ecdsa шифрованием в Unix/Linux
И так, чтобе заюзать данный тип шифрования, можно выполнить:
И опять таки, можно заюзать:
Генерация открытого/закрытого SSH ключ с ed25519 шифрованием в Unix/Linux
И так, чтобе заюзать данный тип шифрования, можно выполнить:
И опять таки, можно заюзать:
Использование открытого/закрытого SSH ключа в Unix/Linux
Чтобы посмотреть содержание ключа, используйте:
И получите что-то типа:
На mac OS X имеется функция которая позволяет копировать в буфер, например:
Данный ключ стоит скопировать на удаленный сервер следующим образом:
- YOUR_KEY — Ваш сгенерированный ключ.
- YOUR_USER — Ваш пользователь на удаленной машине.
- YOUR_HOST — Ваш хост на удаленной машине.
Должен появиться файл:
И, добавим содержание ключа в:
Или если используется
/.ssh/authorized_keys2, то применяем аналогичные действия:
PS: Можно еще одной командой выполнить ряд аналогичных действий:
Осталось уже долго, идем дальше….
Изменение ssh_config
В зависимости от Unix/Linux ОС, ssh_config может лежать в разным местах.
Пример файла в Debian/Ubuntu:
Пример файла в Redhat/Fedora/Centos:
В данном конфиге (я имею ввиду по этой теме), нас интересует следующие строки:
После того как привели к такому виду, перезапускаем ssh:
Подключаемся к удаленному серверу:
Вот еще полезное чтиво:
Другие темы можно найти на сайте 🙂
Тема «Сгенерировать открытый/закрытый SSH ключ в Unix/Linux» завершена.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.
Генерация SSH-ключей
Рассмотрим создание SSH-ключей в Linux и Windows для подключения к серверу под управлением ОС Linux.
Использование SSH-ключей не только позволяет подключаться к серверу без пароля, но и повышает уровень безопасности сервера. Причина проста — пароль можно подобрать, а вот на подбор ключа могут уйти десятилетия. Ключ состоит из двух частей — открытой и закрытой. Именно открытый ключ передается на сервер, а закрытый ключ остается на ПК клиента. Если вы опасаетесь за безопасность ключа, его можно защитить парольной фразой при генерации.
Создание ключей выполняется командой
На что стоит обратить внимание.
OpenSSH поддерживает генерацию нескольких типов ключей:
Последнее время, надежность DSA-ключей ставится под сомнение и рекомендуют использовать RSA-ключи.
Если отсутствует каталог “.ssh” в каталоге вашей учетной записи (это скрытый каталог), то он будет создан. Так было не всегда и возможно его придется создать вручную. passphrase — парольная фраза для защиты ключа. Если не желаете её задавать, тогда просто нажимаете Enter. Далее вводится подтверждение этой фразы, либо также Enter. В результате выполнения команды, будет показан слепок ключа и его псевдографическое изображение. Открытый ключ располагается по пути /home/administrator/.ssh/id_rsa.pub. Закрытый — /home/administrator/.ssh/id_rsa.
Рассмотрим создание ключа через утилиту PuTTY-Gen.
Скачаем ее с официального сайта, выбрав соответствующую разрядность своей операционной системы (не серверной).
В открывшемся окне проверяем значение переключателя “Type of key to generate”, должно быть RSA, кликаем по кнопке Generate.
В обновленном окне программа нас просит выполнять случайные движения мышью в пустом поле программы. Таким образом программа получит случайные данные и создаст ключи.
Должен получиться примерно такой результат:
Копируем текст открытого ключа из поля “Public key for pasting into OpenSSH authorized_keys file:” временно в любой текстовый файл. Сохраняем закрытый ключ нажав соответствующую кнопку. При необходимости указываем парольную фразу.
Открытый ключ должен начинаться с ssh-rsa.
Добавление ключа.
Для успешного подключения к серверу следует прописать полученный открытый ключ в файл authorized_keys расположенном на сервере по пути:
В данном случае, имя пользователя administrator.
В *nix-подобный операционных системах экспорт открытого ключа на сервер выполняется командой:
/.ssh/id_dsa.pub | ssh -l remonet_user_name 10.10.0.1 «cat >> .ssh/authorized_keys»
remote_user_name — имя пользователя на удаленном сервере, под которым и будет происходить дальнейшее подключение.
10.10.0.1 — адрес сервера, в нашем случае, взят для примера. После выполнения команды, потребуется ввести пароль и более этого делать не придется., при попытках подключения с этого ПК.