Cisco-ssh-key-auth: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показано 7 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
[[Категория:Cisco]]
 
[[Категория:Cisco]]
[[Категория:ssh]]
+
[[Категория:SSH]]
   
 
=Авторизация на роутере по ключу=
 
=Авторизация на роутере по ключу=
Строка 23: Строка 23:
 
</PRE>
 
</PRE>
 
===ip domain-name===
 
===ip domain-name===
Этот шаг по моему опыту не обязательный
+
Этот шаг по моему опыту обязательный - без него будет ошибка
  +
<PRE>
  +
% Please define a domain-name first.
  +
</PRE>
  +
 
<PRE>
 
<PRE>
 
ip domain-name home.net
 
ip domain-name home.net
Строка 31: Строка 35:
 
ip domain name home.net
 
ip domain name home.net
 
</PRE>
 
</PRE>
 
   
 
===Сгенерировать ключ===
 
===Сгенерировать ключ===
Строка 45: Строка 48:
   
 
ASR1001-lab(config)
 
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>
 
</PRE>
   
Строка 99: Строка 116:
 
</PRE>
 
</PRE>
   
  +
не забыть ключевое слово <code>exit</code> в конце ключа
   
 
==Конфиг ssh==
 
==Конфиг ssh==
Строка 107: Строка 125:
 
HostKeyAlgorithms=+ssh-dss,ssh-rsa
 
HostKeyAlgorithms=+ssh-dss,ssh-rsa
 
KexAlgorithms=+diffie-hellman-group1-sha1
 
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>
 
</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