Авторизация по ключу

Записки и примеры конфигов

Модератор: sergey

Авторизация по ключу

Сообщение sergey » 08 янв 2020, 23:34

Авторизация по ключу может быть недоступна для IOS версии ниже 15
Предварительная настройка
Перед созданием ключей нужно задать имя маршрутизатора/коммутатора (если ещё не задано) или сменить его (если есть такая потребность). А так же укаказать доменное имя
Код: выделить все
Router#configure terminal
Router(config)#hostname gw1
gw1(config)#ip domain-name corp.ru

Настраиваем входящий и исходящий протокол для всех линий vty. Выставляем только SSH
Код: выделить все
configure terminal
line vty 0 4
transport input ssh
transport output ssh



Генерируем ключи
Создаём пару RSA-ключей (секретный и публичный) на машине с которой требуется организовать доступ, если это нужно
Код: выделить все
ssh-keygen -t rsa -b 2048 -q -C "$(whoami)@$(hostname)-$(date -I)" -N '' -f ~/.ssh/test

Теперь автоматизируем добавление созданного приватного ключа в SSH-агент. Дописываем следующий код в конец файла .bash_profile
Код: выделить все
function SSH-AGENT() {
   eval "$(ssh-agent -s)"
   ssh-add ~/.ssh/test
}
SSH-AGENT

Теперь можно настроить своё рабочее место для подключения к оборудованию. В каталоге ~/.ssh создадим файл config и пропишем в него некоторые параметры
e ~/.ssh/config
Код: выделить все
Host *
AddressFamily inet
Protocol 2
Compression yes
ForwardAgent yes
ForwardX11Trusted no
GSSAPIAuthentication no
PreferredAuthentications=publickey,password

Host gns
    HostName gns.free-adm.ru
    User root

Host corp.ru
    HostName gns.free-adm.ru
    Port 2222
    User root



Просмотр списка имеющихся RSA-ключей на оборудовании CISCO
Код: выделить все
show run | section ssh

Пример удаления ключа если существуют старые/неизвестные ключи. Значение для key-hash ssh-rsa можно взять с предыдущего шага
Код: выделить все
conf t
ip ssh pubkey-chain
username root
no key-hash ssh-rsa A90A7FDB040EADC860B5D22A5C04D0F8 root@google.loc

или удаляем все существующие ключи:
Код: выделить все
conf t
crypto key zeroize rsa

Обратите внимание, что в конфигурации не показывается реальный открытый ключ, но вместо его отображаться "отпечаток пальца" ключа. Сравните данный отпечаток с отпечатком вашего открытого ключа на хосте с которого подключаетесь, чтобы проверить правильный ли ключ Вы загрузили.
Код: выделить все
ssh-keygen -l -f ~/.ssh/test.pub

Значения отпечатков должны совпадать. Разница регистров букв не учитывается


Уcтановка авторизованного RSA-ключа для SSH
Перед тем как добавлять публичный ключ его необходимо подготовить к импорту на CISCO. Для этого нужно строку публичного ключа разбить на группу строк по 70 символов в строке.
fold -b -w 70 test.pub
Код: выделить все
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+acy/uOSzQjBSwI7mz8eXd8T/+pFkOe
LlYvQ+O2aVNqZzg8R9eOPjnF0FzcnovMnoWQcjRDmXy69hMhqfRq3yPtnMvT++v+Si0OR5
QUyRvf/R8sS4ouGRaaoxjb+WPfvKYJL2GQC5e708ys3P64/Gp4loTdYLLjwHfTxm8S0Vfy
5HHqFvB9jLvC2kfhJI4iZcBtmt7m2L+Q2z63YqirqvJTOX3kc0TKa+6TxyaM6ta1JShAd1
5mXeIMC+en0LduzovY/HN5c1hfZ3Bbz58LdGSdyMN96mudtMYn+0CzumrLd4VpnUuU0/X8
8lzjcnITZyJ0fJkQLEJigXEX2rPlzh root@sergey.free-adm.ru-2020-01-09

Теперь подготовленный ключ можно использовать в конфигурации маршрутизатора
Код: выделить все
conf t
ip ssh pubkey-chain
username root
key-string
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+acy/uOSzQjBSwI7mz8eXd8T/+pFkOe
LlYvQ+O2aVNqZzg8R9eOPjnF0FzcnovMnoWQcjRDmXy69hMhqfRq3yPtnMvT++v+Si0OR5
QUyRvf/R8sS4ouGRaaoxjb+WPfvKYJL2GQC5e708ys3P64/Gp4loTdYLLjwHfTxm8S0Vfy
5HHqFvB9jLvC2kfhJI4iZcBtmt7m2L+Q2z63YqirqvJTOX3kc0TKa+6TxyaM6ta1JShAd1
5mXeIMC+en0LduzovY/HN5c1hfZ3Bbz58LdGSdyMN96mudtMYn+0CzumrLd4VpnUuU0/X8
8lzjcnITZyJ0fJkQLEJigXEX2rPlzh root@sergey.free-adm.ru-2020-01-09
exit
end



Удаление паролей
Вы можете удалить пароли пользователей в конфигурации; это заставит этих пользователей использовать аутентификацию по ключу ssh. Если этим людям требуются права администратора,
им все равно нужно будет знать enable секрет, или их логин может перенаправить непосредственно в enable-режим:
Код: выделить все
username root privilege 15



Отключить пароли полностью
Если вы хотите полностью отключить аутентификацию по паролю через ssh, но оставить пароли в учетных записях пользователей для других целей (например, для доступа к консоли), используйте:
Код: выделить все
no ip ssh server authenticate user password
no ip ssh server authenticate user keyboard
Для желающих отблагодарить
SB: 4274320029755744
QIWI: +79175241450
Аватар пользователя
sergey
Администратор
 
Сообщений: 132
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в CISCO

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron