Rancid can’t SSH to older ISRs?

Share on:

Well its 2016 and you still have that one-of-kind Cisco ISR 2811 or 3845 running in the environment? You followed and installed Rancid, all the new stuff works like it should but when you try to connect to that “one-of-kind” 2811 with Rancid it closes the connection... :/

This is a simple fix and the bug is reported here: LINK. The bug is something with OpenSSH which is installed on your Linux operating system and Rancid rides on top of it. You would have the same issue if you just tried SSH to thing directly from your Rancid machine. The bug looked to be fixed starting OpenSSH 6.9 but as right now at least in Centos 7 the version it goes up to is OpenSSH 6.6. You can verify this by using sshd -V to output the OpenSSH version you are using.

Simple fix is to modify the ssh_config file usually located at /etc/ssh/ssh_config and at the bottom of the file put the host you are connecting to. Copy what you have in your router.db file meaning if you are using DNS names put DNS names of the devices that won’t connect into this file. If you are using IP address use IP address in this file. In this example I’m using IP addresses and DNS names, the following is at the bottom of the ssh_config file:

 1# Custom Rancid Configuration (Issues with Connecting SSH with Older Devices)
 2# Bug Report 740307 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=740307
 5    KexAlgorithms=diffie-hellman-group14-sha1
 7Host Router03.example.com
 8    KexAlgorithms=diffie-hellman-group14-sha1
10Host Router02.example.com
11    KexAlgorithms=diffie-hellman-group14-sha1

You should be good to go after that. You can test this by using clogin or by connecting directly. If you noticed on the bug report you could also up the Diffie-Hellman size to 4096 on the router itself by using the ip ssh dh min size 4096 command as well. I hope this helps if you ever need it :)