Темы
Предварительная настройка
Генерируем ключи
Установка авторизованного 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