SSH-RSA-authenfication-on-router

Как настроить аутентификацию без пароля по ключу на Cisco IOS

Разное (сети)

PKI (Public Key Authentication) метод аутентификации, использующий пару ключей для аутентификации вместо пароля. Пара с генерированных ключей:

  • Публичный ключ
  • Приватный ключ

Кто угодно (любое устройство), имеющий публичный ключ может зашифровать данные, которые могут быть расшифрованы только приватным ключом. Это значит, что публичный ключ может быть передан кому угодно, и они в свою очередь могут отправить вам зашифрованное сообщение. Приватный ключ должен быть хорошо защищенным, следите, чтобы он не покинул ваш компьютер.

На этом уроке мы создадим публичный и приватный ключи на компьютерах с Windows и Linux. Затем мы добавим публичный ключ к Cisco IOS маршрутизатору и используем его для аутентификации SSH. Маршрутизатор будет отправлять нам зашифрованные сообщения, которые можем расшифровать только мы потому, что у нас есть приватный ключ. Это доказывает, что мы являемся пользователем, который, как мы заявляем, есть администратором, что позволяет получить доступ к маршрутизатору.

 

1. Конфигурация устройств

Сперва нужно с генерировать пару ключей RSA — публичный и приватный. Сейчас будет показано как это сделать на Windows и Linux.

 

1.1 Создание ключей на Windows

PuTTY один из самых популярных SSH клиентов для Windows, потому его мы и будем использовать. Putty сам по себе не способен генерировать RSA ключи, однако можно использовать PuTTYgen (PuTTY Key Generator).

После его запуска, вы увидите главный экран программы:

 

PuTTYgen_main_window

 

Начальные настройки нам подходят, мы с генерируем 248 битную пару ключей RSA. Нажмите кнопку Generate и вы увидите это:

 

PuTTYgen generating

 

Для генерации случайного ключа  PuTTY использует движения вашей мыши. Водите ею, пока ключ не будет с генерирован. Вы увидите его тут:

 

PuTTYgen generated

 

При закрытии программы ключи пропадут, не забудьте перед этим их сохранить. Также можно опционально добавить комментарий к ключам.

Вы должны тщательно защищать свой приватный ключ, он никогда не должен покидать ваш компьютер. Рекомендуется установить ключевую фразу-пароль для его защиты, мы не будем делать этого в этом уроке.

Нажмите save public key и save private key кнопки:

 

PuTTYgen-save

 

Мы будем использовать следующие имена файлов:

  • публичный ключ: windows_user.pub
  • приватный ключ: windows_user.ppk

 

Это все, что нам нужно сделать. Но чтобы проверить это, мы должны сначала настроить наш Cisco IOS маршрутизатор (или коммутатор) .

 

1.2 Создание ключей на Linux

В большинстве Linux дистрибутивов есть встроенный SSH, мы будем использовать Ubuntu для этого примера.

Сперва надо с генерировать 2048 битную пару ключей RSA:

$ ssh-keygen -b 2048 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Created directory '/home/ubuntu/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ubuntu/.ssh/id_rsa.
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub.
The key fingerprint is:
39:97:0c:ab:33:ea:bb:8b:e3:9f:4f:db:9a:fe:cf:fe [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| . |
| = . |
| S + |
| . o |
| = |
| .. + * . |
| .o+O**ooo+.E |
+-----------------+

 

Имена файлов:

  • публичный ключ: id_rsa.pub
  • приватный ключ: id_rsa

 

Мы можем просмотреть их тут:

$ ls -lh /home/ubuntu/.ssh
total 8,0K
-rw------- 1 ubuntu ubuntu 1,7K jan 10 19:41 id_rsa
-rw-r--r-- 1 ubuntu ubuntu 394 jan 10 19:41 id_rsa.pub

 

Готово. Теперь пора настроить Cisco IOS маршрутизатор (или коммутатор) .

1.3 Конфигурация Cisco IOS

Давайте начнем с базовой конфигурации SSH. Сначала мы настраиваем имя узла:

Router(config)#hostname R1

 

А также имя домена:

R1(config)#ip domain-name SEDICOMM.LOCAL

 

С генерируем 2048 битную пару ключей RSA:

R1(config)#crypto key generate rsa modulus 2048
The name for the keys will be: R1.SEDICOMM.LOCAL

% The key modulus size is 2048 bits
% Generating 2048 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 24 seconds)

%SSH-5-ENABLED: SSH 1.99 has been enabled

 

И включим SSH версии 2:

R1(config)#ip ssh version 2

 

Настроим линии VTY на прием только SSH и локальной авторизации:

R1(config)#line vty 0 4
R1(config-line)#transport input ssh
R1(config-line)#login local

 

Опционально можно отключить запрос пароля при подключении по SSH

R1(config)#no ip ssh server authenticate user password
R1(config)#no ip ssh server authenticate user keyboard

 

Теперь мы можем добавить с генерированные нами ранее на Windows и Linux ключи.

 

1.3.1 Активация ключа, сгенерированого под Windows на устройстве Cisco

 

Вы можете открыть файл публичного ключа (windows_user.pub) в любом текстовом редакторе. Он будет выглядеть так:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "WINDOWS_USER"
AAAAB3NzaC1yc2EAAAABJQAAAQEAijoMF9oBwyQxwYbVlFprz+fG8oe5uAcCxwMw
eIR1lyAnDJIsYbTbcdm+n5KiQnCt2561MpN4yOFpajFNM/dqH7/jYaqaicHCSV2F
RGauEp7FzN/uXxsX7mii6qOuxovl9OflLpXcvH5QH6551ycmL8nIv8UCY8uayiGI
INsC0LyKEctWDW6qWp43T7rhcP0y4JoMraTCZLIPNE0Bo0bHgnGLg6fEvJmyB3sX
H+7BaxHdYKg2OcIgVqYzclWhDwxj32kqd1BCq089iBMrb4QppDU2eM/t22iK29mn
eqOGTiCkxB80ix+KULT9okmqkj3TbhCpunTfuPCCRNrjqndBsw==
---- END SSH2 PUBLIC KEY ----

 

 

Можно убрать все кроме самого ключа, тогда это будет выглядеть так:

AAAAB3NzaC1yc2EAAAABJQAAAQEAijoMF9oBwyQxwYbVlFprz+fG8oe5uAcCxwMw
eIR1lyAnDJIsYbTbcdm+n5KiQnCt2561MpN4yOFpajFNM/dqH7/jYaqaicHCSV2F
RGauEp7FzN/uXxsX7mii6qOuxovl9OflLpXcvH5QH6551ycmL8nIv8UCY8uayiGI
INsC0LyKEctWDW6qWp43T7rhcP0y4JoMraTCZLIPNE0Bo0bHgnGLg6fEvJmyB3sX
H+7BaxHdYKg2OcIgVqYzclWhDwxj32kqd1BCq089iBMrb4QppDU2eM/t22iK29mn
eqOGTiCkxB80ix+KULT9okmqkj3TbhCpunTfuPCCRNrjqndBsw==

 

 

Можно добавить публичный ключ любому пользователю. Мы назовем этого пользователя WINDOWS_USER. После ввода key-string команды, вводим строки ключа, пока не введем exit:

R1(config)#ip ssh pubkey-chain
R1(conf-ssh-pubkey)#username WINDOWS_USER
R1(conf-ssh-pubkey-user)#key-string
R1(conf-ssh-pubkey-data)#AAAAB3NzaC1yc2EAAAABJQAAAQEAijoMF9oBwyQxwYbVlFprz+fG8oe5uAcCxwMw
R1(conf-ssh-pubkey-data)#eIR1lyAnDJIsYbTbcdm+n5KiQnCt2561MpN4yOFpajFNM/dqH7/jYaqaicHCSV2F
R1(conf-ssh-pubkey-data)#RGauEp7FzN/uXxsX7mii6qOuxovl9OflLpXcvH5QH6551ycmL8nIv8UCY8uayiGI
R1(conf-ssh-pubkey-data)#INsC0LyKEctWDW6qWp43T7rhcP0y4JoMraTCZLIPNE0Bo0bHgnGLg6fEvJmyB3sX
R1(conf-ssh-pubkey-data)#H+7BaxHdYKg2OcIgVqYzclWhDwxj32kqd1BCq089iBMrb4QppDU2eM/t22iK29mn
R1(conf-ssh-pubkey-data)#eqOGTiCkxB80ix+KULT9okmqkj3TbhCpunTfuPCCRNrjqndBsw==
R1(conf-ssh-pubkey-data)#exit
R1(conf-ssh-pubkey-user)#exit
R1(conf-ssh-pubkey)#exit

 

Теперь наш маршрутизатор знает публичный ключ для пользователя windows.

Также есть возможность добавить несколько ключей одному пользователю. Тогда к маршрутизатору можно будет подключится под одним пользователем, используя разные пары ключей.

1.3.2 Активация ключа, сгенерированого под Linux на устройстве Cisco

 

Сделаем то же самое для Linux пользователя. Сперва откроем ключ:

$ cat /home/ubuntu/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC80DsOF4nkk15V0V2U7r4Q2MyAwIbgQX/7rqdUyNCTulliYZWdxnQHaI0WpvcEHQTrSXCauFOBqUrLZglI2VExOgu0TmmWCajW/vnp8J5bArzwIk83ct35IHFozPtl3Rj79U58HwMlJ2JhBTkyTrZYRmsP+r9VF7pYMVcuKgFS+gDvhbuxM8DNLmS1+eHDw9DNHYBA+dIaEIC+ozxDV7kF6wKOx59E/Ni2/dT9TJ5Qge+Rw7zn+O0i1Ib95djzNfVdHq+174mchGx3zV6l/6EXvc7G7MyXj89ffLdXIp/Xy/wdWkc1P9Ei8feFBVLTWijXiilbYWwdLhrk7L2EQv5x [email protected]

 

Ключ выводится одной строкой, это нормально, но Cisco IOS поддерживает только 254 символа в строке, потому вы не сможете ввести ключ одной строкой. В Linux есть удобная команда, позволяющая разделить ключ на несколько частей:

$ fold -b -w 72 /home/ubuntu/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC80DsOF4nkk15V0V2U7r4Q2MyAwIbgQX/7
rqdUyNCTulliYZWdxnQHaI0WpvcEHQTrSXCauFOBqUrLZglI2VExOgu0TmmWCajW/vnp8J5b
ArzwIk83ct35IHFozPtl3Rj79U58HwMlJ2JhBTkyTrZYRmsP+r9VF7pYMVcuKgFS+gDvhbux
M8DNLmS1+eHDw9DNHYBA+dIaEIC+ozxDV7kF6wKOx59E/Ni2/dT9TJ5Qge+Rw7zn+O0i1Ib9
5djzNfVdHq+174mchGx3zV6l/6EXvc7G7MyXj89ffLdXIp/Xy/wdWkc1P9Ei8feFBVLTWijX
iilbYWwdLhrk7L2EQv5x [email protected]

 

Можно удалить ssh-rsa в начале и комментарий в конце, получаем вот такой ключ:

AAAAB3NzaC1yc2EAAAADAQABAAABAQC80DsOF4nkk15V0V2U7r4Q2MyAwIbgQX/7
rqdUyNCTulliYZWdxnQHaI0WpvcEHQTrSXCauFOBqUrLZglI2VExOgu0TmmWCajW/vnp8J5b
ArzwIk83ct35IHFozPtl3Rj79U58HwMlJ2JhBTkyTrZYRmsP+r9VF7pYMVcuKgFS+gDvhbux
M8DNLmS1+eHDw9DNHYBA+dIaEIC+ozxDV7kF6wKOx59E/Ni2/dT9TJ5Qge+Rw7zn+O0i1Ib9
5djzNfVdHq+174mchGx3zV6l/6EXvc7G7MyXj89ffLdXIp/Xy/wdWkc1P9Ei8feFBVLTWijX
iilbYWwdLhrk7L2EQv5x

 

 

Давайте добавим его маршрутизаторе Cisco, будем использовать имя пользователя LINUX_USER:

R1(config)#ip ssh pubkey-chain
R1(conf-ssh-pubkey)#username LINUX_USER
R1(conf-ssh-pubkey-user)#key-string
R1(conf-ssh-pubkey-data)#AAAAB3NzaC1yc2EAAAADAQABAAABAQC80DsOF4nkk15V0V2U7r4Q2MyAwIbgQX/7
R1(conf-ssh-pubkey-data)#rqdUyNCTulliYZWdxnQHaI0WpvcEHQTrSXCauFOBqUrLZglI2VExOgu0TmmWCajW/vnp8J5b
R1(conf-ssh-pubkey-data)#ArzwIk83ct35IHFozPtl3Rj79U58HwMlJ2JhBTkyTrZYRmsP+r9VF7pYMVcuKgFS+gDvhbux
R1(conf-ssh-pubkey-data)#M8DNLmS1+eHDw9DNHYBA+dIaEIC+ozxDV7kF6wKOx59E/Ni2/dT9TJ5Qge+Rw7zn+O0i1Ib9
R1(conf-ssh-pubkey-data)#5djzNfVdHq+174mchGx3zV6l/6EXvc7G7MyXj89ffLdXIp/Xy/wdWkc1P9Ei8feFBVLTWijX
R1(conf-ssh-pubkey-data)#iilbYWwdLhrk7L2EQv5x
R1(conf-ssh-pubkey-data)#exit
R1(conf-ssh-pubkey-user)#exit
R1(conf-ssh-pubkey)#exit

 

Все настройки завершены, давайте проверим работоспособность.

 

2. Проверка работоспособности

 

Сперва проверим WINDOWS_USER пользователя, затем LINUX_USER.

 

2.1 Проверка работоспособности Windows

 

После добавления ключа на маршрутизаторе, Cisco IOS просчитает хэш ключа:

R1#show running-config | begin pubkey
ip ssh pubkey-chain
username WINDOWS_USER
key-hash ssh-rsa 8FB4F858DD7E5AFB372780EC653DB371
quit

 

Можем проверить с генерировал ли PuTTY Key Generator такой же хэш

PuTTYgen-hash

 

 

Если хэш совпадает, мы ввели все правильно, и ключи совпадают. Пора настроить PuTTY. Заходим в PuTTY и открываем Connection > SSH setting.

Нажимаем browse и выбираем файл приватного ключа (windows_user.ppk):

 

Putty-file

 

Далее переходим в Connection > Data setting, и вводим тут имя пользователя:

 

putty-user

 

Переходим на главный экран, и, если, не хотим потерять настройки сохраняем сессию кнопкой save.

 

putty-finish

 

Нажимаем Open и видим это:

Using username "WINDOWS_USER".
Authenticating with public key "WINDOWS_USER"

R1>

 

Отлично, мы подключились к маршрутизатору, используя, RSA ключи.

2.2 Проверка работоспособности LINUX_USER

 

Давайте теперь проверим может ли LINUX_USER подключится. Первым делом сравним хэш:

R1#show running-config | begin pubkey
ip ssh pubkey-chain
username WINDOWS_USER
key-hash ssh-rsa 8FB4F858DD7E5AFB372780EC653DB371
quit
username LINUX_USER
key-hash ssh-rsa 39970CAB33EABB8BE39F4FDB9AFECFFE
quit

 

 

Посмотреть хэш на Linux можно следующей командой:

$ ssh-keygen -l -f /home/ubuntu/.ssh/id_rsa.pub
2048 39:97:0c:ab:33:ea:bb:8b:e3:9f:4f:db:9a:fe:cf:fe [email protected] (RSA)

 

 

Хэш совпадает, давайте посмотрим можем ли мы подключится:

$ ssh LINUX_USER[email protected]
R1>

 

Все работает, мы подключены!

 

3. Вывод

Мы разобрались как настроить аутентификацию без пароля по ключу на Cisco IOS, чтобы можно было подключаться как из под Windows так и из под Linux.

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОМ.

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Разное (сети)

Больше похожих постов

Результатов не найдено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Most Viewed Posts
Меню