Cisco-ssh-key-auth
Материал из noname.com.ua
Авторизация на роутере по ключу
Отформатировать ключ в нужный формат
Хотя однострочный ключ несомненно валидный - но на железке есть ограничение на длинну строки и удобнее ключ порезать на строки, и оставить только собственно сам ключ
cat ~/.ssh/id_rsa_local.pub | awk '{ print $2 }' | fold -b -w 72
AAAAB3NzaC1yc2EAAAADAQABAAABAQC5EIrDnnxNBQavZcxiaHCzt0tjtfW0nNuFAz9f+fs4 <skipped> OgFxI0CWHUTIcjLD6d3np534zONNxjxsrUz5MBROPUQYOT9y3m9RDBXJVhdvk7V7lTzFYsrT rsJy+gu0pTCL
Настройка роутера
Установить hostname
Router(config)#hostname R1
ip domain-name
Этот шаг по моему опыту обязательный - без него будет ошибка
% Please define a domain-name first.
ip domain-name home.net
или
ip domain name home.net
Сгенерировать ключ
где он хранится я не знаю
crypto key generate rsa modulus 2048 % You already have RSA keys defined named ASR1001-lab.web. % They will be replaced. % The key modulus size is 2048 bits % Generating 2048 bit RSA keys, keys will be non-exportable... [OK] (elapsed time was 1 seconds) ASR1001-lab(config)
В зависимости от модели устройства (и версии иос?) эта команда crypto key generate rsa
может запускаться из режима конфигурирования (например так на catalyst 4948e)
Включить вторую версию протокола ssh
ip ssh version 2
Настроить линии
line vty 0 4 transport input ssh login local
Ну и пример
line con 0 timeout login response 300 authorization exec LOCAL-AUTHORIZATION login authentication LOCAL-AUTH stopbits 1 line aux 0 stopbits 1 line vty 0 4 exec-timeout 0 0 authorization exec LOCAL-AUTHORIZATION transport input telnet ssh line vty 5 97 exec-timeout 0 0 authorization exec LOCAL-AUTHORIZATION transport input telnet ssh
Отключение паролей (по желанию)
no ip ssh server authenticate user password no ip ssh server authenticate user keyboard
Прописать ключ
ASR1001-lab(config)#ip ssh pubkey-chain ASR1001-lab(conf-ssh-pubkey)#usernam ASR1001-lab(conf-ssh-pubkey)#username sirmax ASR1001-lab(conf-ssh-pubkey-user)#key-string ASR1001-lab(conf-ssh-pubkey-data)#AAAAB3NzaC1yc2EAAAADAQABAAABAQC5EIrDnnxNBQavZcxiaHCzt0tjtfW0nNuFAz9f+fs4 ASR1001-lab(conf-ssh-pubkey-data)#dL0/3wTbDCWO1l2tahTlupM8r/Tm4Sq20Gsrndl37zEFoqFZG42m1COuEMBgppl4er0cetlZ ASR1001-lab(conf-ssh-pubkey-data)#V0qeKfcKQ0xXlZUE1LMJwQoBqAFl4QJ6g25PSPESJxd3wQ1RUfjvJ9kvW8c4sLHD0MjLAmX+ ASR1001-lab(conf-ssh-pubkey-data)#VjFlbqNtM1l3uAIMc17RP4B2u4s2FqoyCjg9IxcGlL364FOWJZdHjFaBJvg1k4zo+WzSA2Yt ASR1001-lab(conf-ssh-pubkey-data)#OgFxI0CWHUTIcjLD6d3np534zONNxjxsrUz5MBROPUQYOT9y3m9RDBXJVhdvk7V7lTzFYsrT ASR1001-lab(conf-ssh-pubkey-data)#rsJy+gu0pTCL ASR1001-lab(conf-ssh-pubkey-data)#exit
не забыть ключевое слово exit
в конце ключа
Конфиг ssh
Host asr1001
SendEnv LANG LC_*
Ciphers +aes256-cbc
HostKeyAlgorithms=+ssh-dss,ssh-rsa
KexAlgorithms=+diffie-hellman-group1-sha1
Этот конфиг реашет следующие ошибки
Unable to negotiate with 10.72.0.50 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
Unable to negotiate with 10.72.0.50 port 22: no matching host key type found. Their offer: ssh-rsa