Juniper: Настройка автоматического копирования конфига при коммите

Конфиг роутера Juniper будем сохранять через scp, причём подключаться будем при помощи публичного ключа, а не пароля.
На сервере заводим пользователя juniper.
На роутере из-под пользователя root генерируем ключи:
>start shell
% su -
% ssh-keygen -t rsa -b 4096
cat /root/.ssh/id_rsa.pub


Обращаю внимание, что именно из-под пользователя root, а не из-под обычного пользователя, под которым вы вошли на роутер.

Полученный публичный ключ сохраняем в одну строку на сервере в папке пользователя juniper (в файле /home/juniper/.ssh/authorized_keys):
ssh-rsa AAAA...[очень много символов]... user@router


Теперь собственно автоматическое копирование конфига при коммите:
set system archival configuration transfer-on-commit
set system archival configuration archive-sites "scp://juniper@10.1.1.11/home/juniper"


Конфиги копируются в домашнюю папку юзера juniper /home/juniper:
router_20180303_072352_juniper.conf.gz
router_20180303_072625_juniper.conf.gz


Если на роутере несколько IP-адресов и вы хотите, чтобы по-умолчанию трафик исходил от адреса интерфейса lo0.0, то нужно сделать вот такие настройки:
set interfaces lo0 unit 0 family inet address 10.1.1.2/32 primary
set system default-address-selection


Указанные настройки влияют не только на копирование по scp, так что после коммита, не закрывая текущую сессию, проверьте доступность роутера открыв новую сессию )

Дополнение.

Если про комите выдаётся ошибка:
[edit security]               
  'ssh-known-hosts'           
    warning: statement has no contents; ignored

То нужно ввести ключ хоста, с которого мы подключаемся, в секции security — security: можно вручную, можно запросить с сервера, а можно импортировать его из уже созданного системой роутера. Лично мне последний вариант показался наиболее логичным:
set ssh-known-hosts load-key-file /var/home/user/.ssh/known_hosts

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.