今晚正式用golang脚本来批量处理一些思科2960老设备的运维任务了(数量多于100台)。模块用的是Netrasp,问题不少,都是和2960过于古董的SSH算法以及Cipher相关,幸好最后都一一得到解决,Netrasp确实好用,作者Ogenstad很贴心,很多坑都给出了解决方案,连2960这种老设备也给了足够的关怀,下面给出Netrasp在2960上遇到的各种坑和解决方案:
运行脚本后,看到下面报错,提示Golang主机和交换机的SSH密钥交换的算法不匹配(图1)
这是因为2960的算法太老了,只支持diffie-hellman-group1-sha1算法,必须在命令行用ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 parry@10.216.1.22手动指定2960使用的算法才能登陆,Netrasp的解决方案是使用netrasp.WithSSHKeyExchange("diffie-hellman-group1-sha1") (图2)
第二次运行脚本后又遇到cipher不匹配的问题(图3)
继续加上netrasp.WithSSHCipher("aes128-cbc")后问题解决(图4)
《网工的Python之路》第二版已经写完了,出版社已经暂定明年1月出版发行,目前国内网工们学习Python的氛围空前火爆,是时候换个赛道深耕Golang了,人无我有,人有我优,永远走在一个领域的最前面才是一个行业的布道者和领路人该做的事。







