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

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

Модератор: ROOT

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

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



Темы
 Предварительная настройка 
 Генерируем ключи 
 Установка авторизованного RSA-ключа для SSH 
 Удаление паролей 
 Отключить пароли полностью 


Авторизация по ключу может быть недоступна для 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

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


 Установка авторизованного 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: 5469 4009 6510 2267
Аватар пользователя
ROOT
Администратор
 
Сообщений: 417
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в CISCO

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

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

cron