Cisco-ssh-key-auth: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показано 10 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
[[Категория:Cisco]] |
[[Категория:Cisco]] |
||
− | [[Категория: |
+ | [[Категория:SSH]] |
=Авторизация на роутере по ключу= |
=Авторизация на роутере по ключу= |
||
− | ==Отформатировать ключ в нужный формат= |
+ | ==Отформатировать ключ в нужный формат== |
Хотя однострочный ключ несомненно валидный - но на железке есть ограничение на длинну строки и удобнее ключ порезать на строки, и оставить только собственно сам ключ |
Хотя однострочный ключ несомненно валидный - но на железке есть ограничение на длинну строки и удобнее ключ порезать на строки, и оставить только собственно сам ключ |
||
<PRE> |
<PRE> |
||
Строка 16: | Строка 16: | ||
</PRE> |
</PRE> |
||
+ | ==Настройка роутера== |
||
− | ==2== |
||
+ | |||
+ | ===Установить hostname=== |
||
+ | <PRE> |
||
+ | Router(config)#hostname R1 |
||
+ | </PRE> |
||
+ | ===ip domain-name=== |
||
+ | Этот шаг по моему опыту обязательный - без него будет ошибка |
||
+ | <PRE> |
||
+ | % Please define a domain-name first. |
||
+ | </PRE> |
||
+ | |||
+ | <PRE> |
||
+ | ip domain-name home.net |
||
+ | </PRE> |
||
+ | или |
||
+ | <PRE> |
||
+ | ip domain name home.net |
||
+ | </PRE> |
||
+ | |||
+ | ===Сгенерировать ключ=== |
||
+ | где он хранится я не знаю |
||
+ | <PRE> |
||
+ | 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) |
||
+ | </PRE> |
||
+ | |||
+ | В зависимости от модели устройства (и версии иос?) эта команда <code>crypto key generate rsa</code> может запускаться из режима конфигурирования (например так на catalyst 4948e) |
||
+ | <BR> |
||
+ | Если ключи короче 2048 - то может возникать ошибка (я проверял только на свитче) |
||
+ | <PRE> |
||
+ | ssh_dispatch_run_fatal: Connection to 10.72.0.254 port 22: Invalid key length |
||
+ | </PRE> |
||
+ | Решается перегенерацией ключа |
||
+ | <PRE> |
||
+ | conf t |
||
+ | crypto key zeroize rsa |
||
+ | crypto key generate rsa modulus 2048 |
||
+ | end |
||
+ | </PRE> |
||
+ | |||
+ | ===Включить вторую версию протокола ssh === |
||
+ | <PRE> |
||
+ | ip ssh version 2 |
||
+ | </PRE> |
||
+ | |||
+ | ===Настроить линии=== |
||
+ | <PRE> |
||
+ | line vty 0 4 |
||
+ | transport input ssh |
||
+ | login local |
||
+ | </PRE> |
||
+ | Ну и пример |
||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | |||
+ | ===Отключение паролей (по желанию)=== |
||
+ | <PRE> |
||
+ | no ip ssh server authenticate user password |
||
+ | no ip ssh server authenticate user keyboard |
||
+ | </PRE> |
||
+ | |||
+ | ===Прописать ключ=== |
||
+ | |||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | |||
+ | не забыть ключевое слово <code>exit</code> в конце ключа |
||
+ | |||
+ | ==Конфиг ssh== |
||
+ | <PRE> |
||
+ | Host asr1001 |
||
+ | SendEnv LANG LC_* |
||
+ | Ciphers +aes256-cbc |
||
+ | HostKeyAlgorithms=+ssh-dss,ssh-rsa |
||
+ | KexAlgorithms=+diffie-hellman-group1-sha1 |
||
+ | </PRE> |
||
+ | |||
+ | Этот конфиг реашет следующие ошибки |
||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | Unable to negotiate with 10.72.0.50 port 22: no matching host key type found. Their offer: ssh-rsa |
||
+ | </PRE> |
Текущая версия на 17:02, 22 октября 2024
Авторизация на роутере по ключу
Отформатировать ключ в нужный формат
Хотя однострочный ключ несомненно валидный - но на железке есть ограничение на длинну строки и удобнее ключ порезать на строки, и оставить только собственно сам ключ
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)
Если ключи короче 2048 - то может возникать ошибка (я проверял только на свитче)
ssh_dispatch_run_fatal: Connection to 10.72.0.254 port 22: Invalid key length
Решается перегенерацией ключа
conf t crypto key zeroize rsa crypto key generate rsa modulus 2048 end
Включить вторую версию протокола 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