varugasu / getrun

A golang program to retrieve Running Configuration from Cisco IOS devices + Deprecated Kex and Ciphers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Get Running Configuration from Cisco IOS

This code works at best effort; therefore, the SSH client tries to connect to servers even with not recommended Kex and Ciphers:

DIAL:
	conn, err = ssh.Dial("tcp", addr, sshConfig)
	if err != nil {
		m := regexp.MustCompile(`server offered: \[(.*)\]`)

		errString := err.Error()
		if strings.Contains(errString, "key exchange") {
			sshConfig.Config.KeyExchanges = strings.Split(m.FindStringSubmatch(errString)[1], " ")
			goto DIAL
		}
		if strings.Contains(errString, "server cipher") {
			sshConfig.Config.Ciphers = strings.Split(m.FindStringSubmatch(errString)[1], " ")
			goto DIAL
		}
		return nil, err
	}

goto had proved very useful in this case because it reduced the amount of code to handle all these exceptions.

Usage:

./getrun -t {target} -P {port} -u {username} -p {password}

About

A golang program to retrieve Running Configuration from Cisco IOS devices + Deprecated Kex and Ciphers

License:MIT License


Languages

Language:Go 99.2%Language:Makefile 0.8%