SSH, аутентификация по public key с Linux на Cisco
Допустим вам необходимо настроить некоторую автоматизацию на Cisco с помощью Ansible. Для этого первым делом вам необходимо настроить подключение по SSH без использования пароля. В этой статье я расскажу как это сделать.
В этом примере я использую Cisco 2911 с IOS 15.7(3)M3.
Давайте проверим, что у нас уже есть открытый ключ:
Если его там нет, вы можете сгенерировать его с помощью команды:
Вы должны убедиться, что этот открытый ключ (id_rsa.pub на Linux) является доверенным для нашего роутера.
На роутере выполните эти команды:
Также убедитесь, что вы генерируете ключи RSA на сервере размером более 768 бит. Вы также должны установить SSHv2 на стороне сервера (хотя, строго говоря, это не требуется, если вы используете SSH 1.99).
Таким образом после выполнения вышеописанных шагов, вы сможете подключиться без использования пароля:
Начальная конфигурация
В этом примере я использую Cisco 2911 с IOS 15.7(3)M3.Сторона клиента
Я предполагаю, что клиент - это разновидность Unix, просто потому, что это более распространенный способ. Однако этот метод работает в Windows, используя Putty и другие эмуляторы терминала.Давайте проверим, что у нас уже есть открытый ключ:
cat .ssh/id_rsa.pub
Если его там нет, вы можете сгенерировать его с помощью команды:
ssh-keygen
Сторона сервера
На Cisco создайте пользователя:username test priv 15 secret supers3cr3tn0bdyw1llgue55
Вы должны убедиться, что этот открытый ключ (id_rsa.pub на Linux) является доверенным для нашего роутера.
На роутере выполните эти команды:
ip ssh pubkey-chain
username test
key-string
Скопируйте весь открытый ключ, как показано в cat id_rsa.pub, включая ssh-rsa и
username@hostname.
Обратите внимание, что некоторые версии IOS могут принимать до 254 символов.
Вы можете вставить несколько строк.
exit
exit
Также убедитесь, что вы генерируете ключи RSA на сервере размером более 768 бит. Вы также должны установить SSHv2 на стороне сервера (хотя, строго говоря, это не требуется, если вы используете SSH 1.99).
ip ssh version 2
Проверка
Обычно большинство устройств предпочитают следующий порядок аутентификации:- publickey
- keyboard-interactive
- password
Таким образом после выполнения вышеописанных шагов, вы сможете подключиться без использования пароля:
Linux# ssh -2 -v test@example.com