- Настройка аутентификации на основе SSH-ключей на сервере Linux
- Как работают SSH-ключи?
- Создание SSH-ключей
- Копирование открытого ключа на удаленный сервер
- 1: Копирование ключа с помощью ssh-copy-id
- 2: Копирование ключа с помощью SSH
- 3: Копирование открытого ключа вручную
- Аутентификация через SSH-ключи
- Отключение парольной аутентификации
- igorsmolin
- Изучаем и настраиваем SSH аутентификацию по открытому ключу
- Что это такое и зачем это нужно?
- Симметричное и асимметричное шифрование
- Ключевая пара
- Применение на практике
- Настройка доступа по ключам
- Разворачиваем виртуальную машину
- Конфигурация сервера. Установка OpenSSH на Linux
- Конфигурация сервера. Установка OpenSSH на Windows
- Конфигурация клиента. Формирование ключевой пары на Windows (PuTTYgen)
- Конфигурация клиента. Формирование ключевой пары на Linux (ssh-keygen)
- Конфигурация сервера. Разрешение аутентификации по ключу и добавление ключей на Linux.
- Конфигурация сервера. Разрешение аутентификации по ключу и добавление ключей на Windows.
- Подключение к серверу SSH по открытой части ключа на Windows.
- Подключение к серверу SSH по открытой части ключа на Linux.
- Конвертация ключей
- Итоги
Настройка аутентификации на основе SSH-ключей на сервере Linux
SSH (secure shell) – это криптографический протокол для управления и взаимодействия с серверами. В случае с сервером Linux большая часть работы происходит в терминале через соединение SSH.
Существует несколько различных способов подключения к серверу по SSH. В этом руководстве мы рассмотрим аутентификацию на основе ключей SSH. Ключи SSH – это простой, но чрезвычайно безопасный способ входа на сервер.
Как работают SSH-ключи?
Существует несколько различных способов входа в SSH-сервер. В этом руководстве мы рассмотрим настройку аутентификации на основе ключей SSH. Ключи SSH – это простой, но чрезвычайно безопасный способ входа на ваш сервер.
Хотя пароли отправляются на сервер безопасным путем, как правило, они не достаточно сложные или слишком короткие, а потому в ходе повторяющейся атаки подбора их можно взломать. Современная вычислительная мощность в сочетании с автоматизированными сценариями позволяет взламывать аккаунты путем brute force атак. Конечно, есть и другие способы обеспечения дополнительной безопасности (fail2ban и т. п.), но ключи SSH являются надежной и безопасной альтернативой.
В аутентификации на основе ключей SSH используются два криптографических ключа. Каждая пара ключей состоит из открытого и закрытого ключа.
Закрытый ключ должен храниться в секрете. Если злоумышленник получит закрытый ключ, он сможет войти на серверы, связанные с этой парой ключей, без дополнительной аутентификации. В качестве дополнительной меры предосторожности ключ можно защитить парольной фразой.
Открытый ключ можно свободно распространять. Он позволяет зашифровывать сообщения, которые можно расшифровать только с помощью соответствующего закрытого ключа. Аутентификация по ключам основана на этом принципе.
Открытый ключ загружается на удаленный сервер, на котором нужно настроить аутентификацию по ключам SSH. Ключ добавляется в специальный файл
/.ssh/authorized_keys в учетной записи пользователя, с помощью которого нужно войти на сервер.
Когда клиент пытается аутентифицироваться с помощью SSH-ключей, сервер может проверить клиента на наличие у закрытого ключа. Если клиент может доказать, что ему принадлежит закрытый ключ, сервер запускает сеанс оболочки или выполняет требуемую команду.
Создание SSH-ключей
Для начала нужно сгенерировать пару ключей SSH на локальном компьютере.
Для этого существует утилита ssh-keygen, которая входит в стандартный набор инструментов OpenSSH. По умолчанию она создает пару 2048-битных ключей RSA, которые подходят в большинстве случаев.
Чтобы сгенерировать пару ключей на локальной машине, введите:
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Утилита предложит выбрать место хранения ключей. По умолчанию ключи будут храниться в каталоге
/.ssh в домашнем каталоге текущего пользователя. Закрытый ключ будет называться id_rsa, а связанный с ним открытый ключ – id_rsa.pub.
Как правило, на этом этапе лучше всего хранить ключи в каталоге по умолчанию. Это позволит SSH-клиенту автоматически найти SSH-ключи при попытке аутентификации. Если вы хотите выбрать нестандартный путь к ключам, введите его сейчас; чтобы принять значение по умолчанию, нажмите Enter.
Если на локальной машине уже есть пара ключей, вы увидите сообщение:
/home/username/.ssh/id_rsa already exists.
Overwrite (y/n)?
Если вы перепишете существующие ключи, вы не сможете использовать их при аутентификации. Подтверждая перезапись, будьте очень внимательны: этот процесс нельзя отменить.
Created directory ‘/home/username/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Затем утилита предложит ввести парольную фразу для защиты ключа. Это действие опционально.
Вы можете задаться вопросом, какие преимущества дают ключи SSH, если все еще нужно вводить парольную фразу. Вот некоторые из преимуществ:
- Закрытый SSH-ключ (который можно защитить парольной фразой) никогда не бывает доступным в сети. Парольная фраза шифрует ключ на локальной машине. Это значит, что сетевые brute force атаки не смогут взломать парольную фразу и получить доступ к закрытому ключу.
- Закрытый ключ хранится в каталоге с ограниченным доступом. Клиент SSH не сможет распознать закрытые ключи, которые хранятся в открытых каталогах. Сам ключ также должен иметь ограниченные разрешения (права на чтение и запись должны быть только у владельца). Это означает, что другие пользователи в системе не могут его отследить.
- Чтобы взломать парольную фразу закрытого SSH-ключа, злоумышленник должен иметь доступ к системе, то есть доступ к вашей учетной записи пользователя или к учетной записи root. В таком случае парольная фраза может помешать злоумышленнику использовать другие ваши серверы. Это даст вам время на создание и внедрение новой пары ключей SSH.
Поскольку закрытый ключ никогда не отображается в сети и защищен с помощью ограниченных привилегий, этот файл не должен быть доступен никому, кроме вашего пользователя (и пользователя root). Парольная фраза служит дополнительным уровнем защиты в случае нарушения этих условий.
При этом парольная фраза остается опциональным уровнем безопасности. Если вы добавите парольную фразу, вам придется вводить ее каждый раз, когда вы используете этот ключ (хотя программное обеспечение агента SSH может автоматизировать этот процесс). Многие рекомендуют использовать парольную фразу, но если вы не хотите, вы можете просто нажать Enter, чтобы обойти этот запрос.
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host
The key’s randomart image is:
+—[ RSA 2048]—-+
| ..o |
| E o= . |
| o. o |
| .. |
| ..S |
| o o. |
| =o.+. |
|. =++.. |
|o=++. |
+——————+
Итак, теперь у вас есть пара SSH-ключей. Далее нужно добавить открытый ключ на удаленный сервер.
Копирование открытого ключа на удаленный сервер
Теперь нужно выгрузить открытый ключ на удаленный сервер.
Выбранный вами метод во многом зависит от имеющихся у вас инструментов и текущей конфигурации сервера. Мы предлагаем вам несколько методов, которые дают одинаковый конечный результат.
1: Копирование ключа с помощью ssh-copy-id
Утилита ssh-copy-id – самый простой и быстрый способ скопировать открытый ключ на сервер. Если эта утилита доступна, рекомендуется использовать ее.
В большинстве дистрибутивов утилита ssh-copy-id входит в стандартный набор инструментов OpenSSH, потому она может уже быть в локальной системе. Чтобы она сработала, у вас должна быть настроена простая парольная SSH-аутентификация.
Укажите в команде удаленный хост, к которому нужно подключиться, и аккаунт пользователя сервера. В этот аккаунт утилита скопирует открытый ключ.
Команда может вернуть:
The authenticity of host ‘111.111.11.111 (111.111.11.111)’ can’t be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Это значит, что локальная машина не распознает удаленный хост. Это произойдет при первом подключении к новому хосту. Введите yes и нажмите Enter, чтобы продолжить.
Затем утилита просканирует локальный аккаунт, найдет id_rsa.pub и запросит пароль удаленного пользователя.
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
username@111.111.11.111’s password:
Введите пароль (при вводе он не будет отображаться из соображений безопасности) и нажмите Enter. Утилита подключится к учетной записи на удаленном хосте, используя предоставленный пароль. Затем он скопирует содержимое ключа
/.ssh/id_rsa.pub в файл authorized_keys в домашнем каталоге
/.ssh удаленной учетной записи.
На экране появится вывод:
Number of key(s) added: 1
Now try logging into the machine, with: «ssh ‘username@111.111.11.111′»
and check to make sure that only the key(s) you wanted were added.
Теперь открытый ключ загружен на удаленный сервер.
2: Копирование ключа с помощью SSH
Если у вас нет утилиты ssh-copy-id, но есть парольный SSH-доступ к удаленному серверу, вы можете загрузить ключ с помощью SSH.
Для этого нужно вывести открытый SSH-ключ на локальном компьютере и передать его через SSH-соединение на удаленный сервер. Затем можно убедиться, что каталог
/.ssh существует в удаленном аккаунте, а затем вывести открытый ключ, скопированный в файл authorized_keys.
Используйте операторы перенаправления >>, чтобы вставить передаваемые данные, не перезаписывая весь файл. Команда добавит ключ в файл и не удалит другие ключи, если таковые существуют.
/.ssh/id_rsa.pub | ssh username@remote_host «mkdir -p
/.ssh/authorized_keys»
The authenticity of host ‘111.111.11.111 (111.111.11.111)’ can’t be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Это значит, что локальная машина не распознает удаленный хост. Это произойдет при первом подключении к новому хосту. Введите yes и нажмите Enter, чтобы продолжить.
Затем будет запрошен пароль удаленного пользователя.
После этого содержимое ключа
/.ssh/id_rsa.pub будет скопировано в файл authorized_keys в домашнем каталоге
/.ssh удаленной учетной записи.
3: Копирование открытого ключа вручную
Если у вас не настроена парольная аутентификация SSH, вам нужно будет скопировать ключ вручную.
Открытый ключ из файла id_rsa.pub нужно добавить в файл
/.ssh/authorized_keys на удаленной машине.
Чтобы вывести содержимое id_rsa.pub, введите на локальной машине:
/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
Любым доступным методом получите доступ к удаленному хосту.
На удаленном хосте создайте каталог
Затем нужно создать файл authorized_keys и поместить в него ключ из id_rsa.pub.
Для этого можно использовать следующую команду:
Примечание: Вместо public_key_string укажите свой открытый ключ.
Аутентификация через SSH-ключи
Переместив открытый ключ на удаленный сервер, попробуйте подключиться к нему с помощью SSH-ключей.
Базовая команда выглядит так:
Если вы впервые подключаетесь к этому хосту, вы можете увидеть сообщение вроде этого:
The authenticity of host ‘111.111.11.111 (111.111.11.111)’ can’t be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Это значит, что локальная машина не распознает удаленный хост. Введите yes и нажмите Enter, чтобы продолжить.
Если вы не настраивали парольную фразу для закрытого ключа, вы сразу же войдете в систему. Если вы создали парольную фразу для закрытого ключа, вам необходимо будет ввести ее сейчас. После этого должен быть создан новый сеанс оболочки для удаленного пользователя.
Отключение парольной аутентификации
Если вы смогли войти в свою учетную запись с помощью SSH-ключей без пароля, значит, вы успешно настроили аутентификацию на основе SSH-ключей для своей учетной записи. Однако механизм парольной аутентификации все еще включен, что означает, что ваш сервер по-прежнему уязвим к brute-force атакам.
Прежде чем выполнять этот раздел, убедитесь, что у учетной записи root или у пользователя с доступом sudo на удаленном сервере настроена аутентификация на основе ключей SSH. В ходе этого раздела все пароли будут заблокированы, поэтому важно обеспечить себе административный доступ в случае неполадок.
Итак, подключитесь к удаленному серверу с помощью SSH-ключей как пользователь root или sudo. Откройте конфигурационный файл демона SSH.
sudo nano /etc/ssh/sshd_config
Найдите директиву PasswordAuthentication, раскомментируйте ее и присвойте значение no. Теперь вы не сможете подключаться с помощью пароля.
Сохраните и закройте файл. Перезапустите сервис, чтобы обновить настройки:
# Ubuntu/Debian
sudo systemctl restart ssh
# CentOS/Fedora
sudo service sshd restart
Источник
igorsmolin
Изучаем и настраиваем SSH аутентификацию по открытому ключу
Коллеги, приветствую. Сегодня мы познакомимся с методом аутентификации по открытым ключам в SSH. Познакомимся с основными принципами и ключевыми понятиями. Разберем несколько способов формирования ключевой пары, а также произведем конфигурацию и подключение к SSH серверу на системах Windows и Linux. Если Вы в своей деятельности часто используете SSH и хотели бы увеличить безопасность подключений, то давайте вместе разбираться как можно применять аутентификацию по ключу на проектах.
Что это такое и зачем это нужно?
Одним из самых распространенных способов аутентификации в наше время является ввод пароля. Пароли мы используем к любым сервисам, в т.ч и для удаленного подключения ssh. Нам всем хорошо понятна концепция парольной аутентификации — просто вводим логин и пароль. Однако подобный способ аутентификации не является безопасным с точки зрения стойкости самого пароля. Все мы люди и не всегда удается держать в голове или под рукой надежные пароли для сервисов с которыми мы взаимодействуем.
Для решения этой проблемы, а также для повышения уровня безопасности может использоваться другой способ аутентификации — по открытому ключу. Даже если мы будем использовать сложный пароль, его стойкость будет все-равно ниже, чем у метода аутентификации по ключу.
Перед тем как мы начнем, нам понадобится немного разобраться в терминах и основных сущностях.
Симметричное и асимметричное шифрование
Мы начнем наше знакомство с понятия симметричного шифрования. Подобный тип появился очень давно. В его основе лежит главный принцип — информация шифруется и расшифровывается одним и тем же ключем.
Асимметричное шифрование противопоставляется симметричному. Этот тип появился в 70-х годах и позволил применять новые подходы, при которых процедуры шифрования и дешифровки информации производятся разными, но взаимосвязанными ключами. Именно на принципе использования разных частей ключей основана аутентификация по открытому ключу.
Ключевая пара
Одним из фундаментальных терминов в асимметричном шифровании является термин ключевой пары. Фактически он представляет собой совокупность открытой и закрытой частей ключа. Эти части математически связаны между собой таким образом, что открытой частью можно зашифровывать информацию, а закрытой частью расшифровывать.
Обратите внимание, что мы можем передавать открытую часть ключа по незащищенным каналам связи, не боясь компрометации закрытой части. При этом из открытой части нет возможности получить закрытую часть. В этом и заключается его функция и главное отличие от симметричного ключа, получение которого третьими лицами означает возможность доступа к зашифрованной информации.
Применение на практике
Теперь, после небольшой теории, давайте попробуем применить полученную информацию на более реальных задачах. Для возможности аутентификации по открытому ключу нам будет необходимо сгенерировать ключевую пару о которой мы говорили чуть ранее на стороне клиента. В этой статье мы рассмотрим несколько популярных способов формирования ключевой пары при помощи инструментов PuTTY и ssh-keygen.
Также нам будет необходимо установить и сконфигурировать SSH сервер. В качестве примера мы возьмем популярный проект — OpenSSH Server, который доступен для установки на различных операционных системах в т.ч — Windows и Linux.
Настройка доступа по ключам
Разворачиваем виртуальную машину
Для целей тестирования предлагаю создать небольшой тестовый стенд из одной виртуальной машины. Для автоматизации этого процесса можно скачать или склонировать репозиторий на GitHub и выполнить предварительные шаги по установке.
Этот репозиторий позволяет разворачивать виртуальные машины автоматически, без ручных действий, по заранее сформированному алгоритму.
Когда предварительные действия будут выполнены, перейдите в папку сценария Localhost_1.2 для развертывания CentOS, либо в папку Localhost_1.3 для развертывания Ubuntu, либо в папку Localhost_1.0 для развертывания Windows Server и выполните команду:
Тестовый стенд будет развернут автоматически, пока что можно выпить чашечку чая или кофе. Конечно, вам никто не мешает развернуть это любым другим удобным способом.
Спустя время, виртуальная машина будет готова и мы сможем подключиться к ней либо через менеджер виртуальных машин VirtualBox, либо при помощи ssh подключения по адресу 127.0.0.1:2222.
В качестве учетной записи для подключения указываем — vagrant. Пароль — vagrant.
В случае, если была выбрана виртуальная машина на Windows, мы можем подключиться к ней при помощи RDP по адресу 127.0.0.1:33389.
В качестве учетной записи для подключения указываем — Administrator. Пароль — vagrant.
Конфигурация сервера. Установка OpenSSH на Linux
Для установки OpenSSH сервера на CentOS выполним следующую команду:
Итогом должна быть установка, обновление или сообщение об актуальности версии OpenSSH. В моем случае установлена актуальная версия инструмента.
Для установки OpenSSH сервера на Ubuntu выполним следующие команды:
Результатом также будут установка, обновление или сообщение об актуальности версии OpenSSH.
Запустим службу sshd выполнив команду:
Конфигурация сервера. Установка OpenSSH на Windows
Компонент OpenSSH Server доступен в Windows из коробки начиная с версии Windows 10 1809 и Windows Server 2019. Для быстрой установки откроем Powershell от имени администратора и введем команду:
Будет запущен процесс установки компонента OpenSSH Server.
В дополнение к вышеуказанной команде выполним еще пару команд. Запустим службу sshd и выберем тип запуска — Автоматический.
Создадим разрешающее правило в Firewall Windows.
Конфигурация клиента. Формирование ключевой пары на Windows (PuTTYgen)
Сначала попробуем сгенерировать ключевую пару при помощи PuTTY. Для этого нам достаточно скачать инструменты PuTTY и PuTTYgen с официального сайта — https://www.putty.org/.
Инструмент PuTTY нам понадобится для ssh подключения чуть позже, а с помощью PuTTYgen мы сможем сформировать ключевую пару прямо сейчас.
Запустим PuTTYgen и выберем Generate. Все остальные настройки можно оставить по умолчанию.
Далее водим по рабочему столу указателем мыши для формирования ключевой пары. В итоге перед нами появится такое окно.
Поздравляю, мы успешно сгенерировали ключевую пару при помощи PuTTYgen. Сохраним закрытую часть ключа в виде файла при помощи кнопки Save private key в надежное место. PuTTYgen спросит нас о том хотим ли мы пропустить создание ключевой фразы для закрытой части. В нашем случае мы соглашаемся и отвечаем — Да.
Не закрывая окно PuTTYgen переходим в раздел Public key for pasting into OpenSSH authorized_keys file и копируем из него все содержимое. Эта информация нам понадобится на этапе добавления открытого ключа на SSH сервер.
Конфигурация клиента. Формирование ключевой пары на Linux (ssh-keygen)
Теперь попробуем сгенерировать ключевую пару из под Linux при помощи инструмента ssh-keygen. Для теста воспользуемся Ubuntu.
Выполним команду ssh-keygen. Мастер сообщит нам о начале процедуры генерации ключевой пары. Инструмент также спросит о том, где разместить ключ и будем ли мы использовать ключевую фразу. Оставим все значения по умолчанию и продолжим.
В итоге в папке
/.ssh должны появиться две части ключа. id_rsa — закрытая часть, id_rsa.pub — открытая часть.
Нам необходимо позаботиться о том, чтобы никто не имел прав доступа кроме нас самих к этим ключам. Для этого выполним команду:
Скопируем открытую часть ключа себе в буфер обмена, т.к нам понадобится добавить эту информацию на сервер в следующем этапе. Для этого выполним команду:
Конфигурация сервера. Разрешение аутентификации по ключу и добавление ключей на Linux.
Возвращаемся на наш сервер. На этом этапе нам необходимо добавить открытую часть ключа для аутентификации пользователя и разрешить аутентификацию по ключу.
После успешного логина добавим скопированную нами открытую часть ключа из предыдущего этапа в файл
Вставляем открытую часть ключа и сохраняем файл.
Фактически, мы только что связали с пользователем открытую часть ключа. У пользователя может быть несколько ключей для аутентификации. Все они должны быть перечислены в этом файле.
Теперь включим возможность аутентификации по ключу и отключим возможность подключения по паролю. Для этого выполним команду:
Или откроем конфигурационный файл /etc/ssh/sshd_config любым удобным редактором.
Находим строку PasswordAuthentication и устанавливаем значение no. Также находим строку PubkeyAuthentication и устанавливаем значение yes.
Для применения конфигурации перезапустим службу OpenSSH сервера выполнив команду:
Конфигурация сервера. Разрешение аутентификации по ключу и добавление ключей на Windows.
Разрешим функцию аутентификации по открытому ключу, запретим вход по паролю. Заодно перезапустим службу sshd для применения конфигурации.
Для этого запустим PowerShell от имени администратора и выполним команду:
Добавляем открытую часть ключа для аутентификации. Создаем папку .ssh в профиле пользователя а также, вместо ssh-rsa, записываем в файл authorized_keys открытую частью ключа.
Подключение к серверу SSH по открытой части ключа на Windows.
Запустим PuTTY и введем адрес подключения к SSH серверу.
В разделе Connection > SSH > Auth укажем сохраненный файл закрытой части ключа и пробуем подключиться к нашему серверу.
По итогу мы пройдем процедуру аутентификации без указания пароля для учетной записи пользователя.
Результат ssh аутентификации по ключу на сервере CentOS или Ubuntu.
Результат ssh аутентификации по ключу на сервере Windows.
Подключение к серверу SSH по открытой части ключа на Linux.
Выполним подключение к серверу SSH. Для этого запустим на исполнение команду:
По итогу мы пройдем процедуру аутентификации без указания пароля для учетной записи пользователя.
Результат ssh аутентификации по ключу на сервере CentOS или Ubuntu.
Результат ssh аутентификации по ключу на сервере Windows.
Конвертация ключей
В статье использовалась небольшая хитрость, которая может пригодиться в рабочей деятельности.
Представьте простую и вполне реальную ситуацию. Вы сгенерировали ключевую пару и хотели бы распространить ее на других своих устройствах. Проблемой может стать желание перенести ключевую пару на Linux, которая была сгенерирована при помощи PuTTYgen под Windows.
К сожалению, если скопировать такой ключ и попытаться произвести вход на SSH сервер, мы скорее всего получим ошибку: Load key «/root/.ssh/id_rsa»: invalid format, либо подобные.
Это связано с тем, что закрытая часть ключа, генерируемая разными инструментами, будет сформирована в разных форматах. Сама структура файла будет отличаться и для решения проблемы потребуется процедура конвертации.
Самый просто способ — запустить PuTTYgen, загрузить сохраненную закрытую часть ключа при помощи кнопки Load.
Перейти в раздел Conversions и выбрать меню Export OpenSSH key.
Инструмент позволит нам сохранить закрытую часть в формате (PEM), который генерирует ssh-keygen.
Точно таким же методом мы можем производить обратное преобразование из PEM в формат PuTTY. Таким образом, нет необходимости создавать разные сущности ключей, мы сможем использовать одну.
Итоги
Коллеги, сегодня нам удалось познакомиться с методом аутентификации по открытому ключу. Мы узнали не только теоретическую часть, но и попробовали на практике посмотреть на работу этого способа аутентификации на разных системах. Надеюсь, что полученная информация пригодится в ваших существующих и будущих проектах. Если Вам есть, что обсудить или остались какие-либо вопросы, пожалуйста, оставляйте комментарии.
Источник