Obtener el running-config de equipos Cisco nos pueden servir para obtener un mejor registro de cambios y comfiguración de múltiples equipos a lo largo de una red. Para ello un poco de automatización no viene mal, la idea es crear una llave para identificarse con los equipos, subirla a los equios y crear un script para respaldar y copiar la configuración.
Crearemos entonces una llave exclusiva para obtener la configuración, cuando pregunte por la contraseña, solo hay que dar enter para dejar vacía la contraseña que de otra forma no serviría para automatizar:
$ ssh-keygen -f ~/.ssh/red
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/fulano/.ssh/red.
Your public key has been saved in /home/fulano/.ssh/red.pub.
The key fingerprint is:
SHA256:9rFVLihY+7OPG1+uw3TunCpTDfNVTeNoMtbQJ5xDjlo fulano@bitcoinbox
The key's randomart image is:
+---[RSA 2048]----+
| .+..oo|
| =*o.+|
| . E ==..|
| o .+.*o .|
| . S.o o=.. |
| . + +o.+ |
| *+ o. |
| o*o+.. |
| +==== |
+----[SHA256]-----+
Paso segundo obtenemos la llave pública en bloques de 72 caracteres para alimentarla al equipo cisco:
$ cat ~/.ssh/red.pub | awk '{print $2}' | fold -b -w 72
AAAAB3NzaC1yc2EAAAADAQABAAABAQDEsffxqu4X0Sujd8/4vHSHQG1ZdlBscGoCC7Frn7Wp
ZUGu3kakk9bQeJJcyA7aSEVPSAdHGR3lbQjaCO5hJb4SMYPZf0UWeoeSmolNNgmM+Hf3ELjv
kRetOyuMOd+QulhlwNxOGExwKVB4oYALKhFeXQT+osBV3X/MLeYaHx3LVSRDwqwl8g1JgEIa
2ExY1bYLCUKjvsjOxuzujCjTcGRv9gdA8WY3w6qwqv6GlpuW7ahKTrxF7u1mzfN2xYyRFpSa
WC/uVbZqrtT8xoiHc9nWhKcuQjblI7VD1je8p3qMAyrTohgy7WtTvOxl173brj9uad96jpcz
a3paS3NdZS/x
Ahora en el equipo Cisco vamos a configurar la llave y también eliminaremos la opción de la confirmación, de preguntas, esto hará que el equipo no pregunte por confirmación de algunos comandos por lo que hay que manejarlo con cuidado. En el campo key-string alimentaremos nuestra llave publica fragmentada
router_demo#configure terminal
router_demo(config)#ip ssh pubkey-chain
router_demo(conf-ssh-pubkey)#username fulano
router_demo(conf-ssh-pubkey-user)#key-string
router_demo(conf-ssh-pubkey-data)#AAAAB3NzaC1yc2EAAAADAQABAAABAQDEsffxqu4X0Sujd8/4vHSHQG1ZdlBscGoCC7Frn7Wp
router_demo(conf-ssh-pubkey-data)#ZUGu3kakk9bQeJJcyA7aSEVPSAdHGR3lbQjaCO5hJb4SMYPZf0UWeoeSmolNNgmM+Hf3ELjv
router_demo(conf-ssh-pubkey-data)#kRetOyuMOd+QulhlwNxOGExwKVB4oYALKhFeXQT+osBV3X/MLeYaHx3LVSRDwqwl8g1JgEIa
router_demo(conf-ssh-pubkey-data)#2ExY1bYLCUKjvsjOxuzujCjTcGRv9gdA8WY3w6qwqv6GlpuW7ahKTrxF7u1mzfN2xYyRFpSa
router_demo(conf-ssh-pubkey-data)#WC/uVbZqrtT8xoiHc9nWhKcuQjblI7VD1je8p3qMAyrTohgy7WtTvOxl173brj9uad96jpcz
router_demo(conf-ssh-pubkey-data)#a3paS3NdZS/x
router_demo(conf-ssh-pubkey-data)#exit
router_demo(conf-ssh-pubkey)#exit
Ahora con esto podemos hacer una copia del running-config al directorio de flash: y luego a nuestro equipo:
$ ssh fulano@192.168.100.10 -i ~/.ssh/red 'copy startup-config flash:start.txt'
$ scp -i ~/.ssh/netdevices fulano@192.168.100.10:start.txt .