В этой статье мы пошагово рассмотрим, как настроить аутентификацию без пароля по ключу на Cisco IOS, чтобы можно было подключаться как из-под Windows, так и из-под Linux.
Содержание:
Что такое PKI
PKI (Public Key Authentication) — метод аутентификации, использующий пару ключей для аутентификации вместо пароля. Существует два вида ключей:
- публичный ключ;
- приватный ключ.
Кто угодно (любое устройство), имеющий публичный ключ, может зашифровать данные, которые будут расшифрованы только приватным ключом. Это значит, что публичный ключ может быть передан любому пользователю, который, в свою очередь, может отправить Вам зашифрованное сообщение.
Важно: приватный ключ должен быть хорошо защищенным, следите, чтобы он не покинул Ваш компьютер.
Сегодня мы создадим публичный и приватный ключи на компьютерах с Windows и Linux. Затем мы добавим публичный ключ к Cisco IOS маршрутизатору и используем его для аутентификации SSH. Маршрутизатор будет отправлять нам зашифрованные сообщения, которые можем расшифровать только мы, так как являемся владельцами приватного ключа. Это будет доказательством того, что мы являемся пользователем с правами администратора, то есть можем получить доступ к маршрутизатору.
Настройка устройств и создание ключей
Сперва нужно сгенерировать пару ключей RSA — публичный и приватный. Сейчас я покажу, как это сделать на Windows и Linux.
Создание ключей на Windows
PuTTY — один из самых популярных SSH-клиентов для Windows, потому его мы и будем использовать. PuTTY сам по себе не способен генерировать RSA-ключи, однако можно использовать PuTTY
После его запуска, Вы увидите главный экран программы:
Начальные настройки нам подходят. Теперь мы сгенерируем 248-битную пару ключей RSA. Для этого нажмите кнопку Generate:
Для генерации случайного ключа PuTTY под аутентификацию, используйте движения Вашей мыши. Водите ею, пока ключ не будет сгенерирован. Вы увидите его тут:
Важно: при закрытии программы ключи сразу же пропадут, не забудьте перед этим их сохранить. Вы должны тщательно защищать свой приватный ключ, он никогда не должен покидать Ваш компьютер. Рекомендуется установить ключевую фразу-пароль для его защиты.
Также можно опционально добавить комментарий к ключам.
Далее нажмите кнопки save public key и save private key:
Мы будем использовать следующие имена файлов:
- публичный ключ: windows_user.pub
- приватный ключ: windows_user.ppk
Чтобы проверить работу ключей, мы должны сначала настроить наш Cisco IOS маршрутизатор / коммутатор.
Создание ключей на Linux
В большинстве Linux-дистрибутивов есть встроенный SSH. Для этого примера мы будем использовать Ubuntu.
Сперва надо сгенерировать 2048-битную пару ключей RSA:
Со следующими именами файлов:
- публичный ключ: id_rsa.pub
- приватный ключ: id_rsa
Мы можем посмотреть их тут:
Готово. Теперь пора настроить Cisco IOS маршрутизатор / коммутатор.
Настройка Cisco IOS
Давайте начнем с базовой настройки SSH. Сначала мы настраиваем имя узла:
А также имя домена:
Далее сгенерируем 2048-битную пару ключей RSA:
И включим SSH версии 2:
Теперь настроим линии VTY на прием только SSH и локальной авторизации:
Опционально можно отключить запрос пароля при подключении по SSH:
Теперь мы можем добавить сгенерированные нами ранее ключи на Windows и Linux.
Активация ключа, сгенерированного под Windows на устройстве Cisco
Вы можете открыть файл публичного ключа (windows_user.pub) в любом текстовом редакторе. Он будет выглядеть так:
Можно убрать все, кроме самого ключа, тогда это будет выглядеть так:
Можно добавить публичный ключ любому пользователю. Мы назовем этого пользователя WINDOWS_USER. После ввода команды key-string, вводим строки ключа, пока не введем exit:
Теперь наш маршрутизатор знает публичный ключ для пользователя Windows.
Также есть возможность добавить несколько ключей одному пользователю — тогда к маршрутизатору можно будет подключится под одним пользователем, используя разные пары ключей.
Активация ключа, сгенерированного под Linux на устройстве Cisco
Сделаем то же самое для Linux-пользователя. Сперва откроем ключ:
Ключ должен выводится одной строкой. Однако, Cisco IOS поддерживает только 254 символа в строке, которых нам явно не хватит. Хорошо, что в Linux есть удобная команда, позволяющая разделить ключ на несколько частей. Воспользуемся ей:
Также можно удалить ssh-rsa в начале и комментарий в конце, получаем вот такой ключ:
Давайте добавим его на маршрутизатор Cisco. Будем использовать имя пользователя LINUX_USER:
Все настройки завершены, давайте проверим работоспособность.
Проверка работоспособности
Сперва проверим WINDOWS_USER пользователя, затем LINUX_USER.
Проверка работоспособности Windows
После добавления ключа на маршрутизатор, Cisco IOS просчитает хэш ключа:
Можем проверить сгенерировал ли PuTTY Key Generator такой же хэш:
Если хэш совпадает, мы ввели все правильно, а значит и ключи совпадают.
Теперь пора настроить PuTTY. Заходим в PuTTY и открываем Connection > SSH setting.
Нажимаем browse и выбираем файл приватного ключа (windows_user.ppk):
Далее переходим в Connection > Data setting, и вводим тут имя пользователя:
Переходим на главный экран, и, если не хотим потерять настройки, сохраняем сессию кнопкой Save.
Нажимаем Open и видим это:
Отлично, мы подключились к маршрутизатору, используя RSA-ключи.
Проверка работоспособности Linux
Давайте теперь проверим может ли LINUX_USER подключиться. Первым делом сравним хэш:
Посмотреть хэш на Linux можно следующей командой:
Хэш совпадает, давайте посмотрим, можем ли мы подключиться:
Выводы
Спасибо за уделенное время на прочтение статьи. Теперь Вы больше знаете о том, как настроить аутентификацию без пароля по ключу на Cisco IOS, чтобы можно было подключаться как из-под Windows, так и из-под Linux.
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.