公司有40多台交换机和防火墙,做为管理员,每隔一段时间,可能就要更换一次密码。每更换一次密码至少就是一天,而且手工操作还有可能出现遗忘等问题。那有没有什么办法可以一次性更改所有网络设备的密码呢?
我想到的办法就是客户端通过Stelnet以RSA认证方式登录到设备的方法。
首先生成一对非对称加密密钥,私钥用密码保护,公钥用以上传到所有网络设备,并将一个本地用户关联到这个公钥。 按这个链接的方法:https://blog.51cto.com/liu008qing/2485985
那我们如何来一次性更改所有设备的密码呢?其实也就涉及到了私钥的保护密码更换的问题,同一个公钥对应的是同一个私钥,那么我们只需要更改私钥的密码就可以实现了。
我们有两种方式来更改RSA私钥的密码。
一、 使用puttygen来更改
使用puttygen, conversions-->import key,导入RSA的公钥(Linux生成的,可用于xshell的那种)。

  1. 在key passphrase那里输入新的密码
  2. conversions-->export三种格式的私钥,都可以用于xshell登录的私钥

如果想不使用密码保护私钥,则key passphrase留空即可。

二、 linux使用ssh-keygen来更改

[root@centos2 .ssh]# ssh-keygen -p -f pkey-xshell # 输入旧密码,然后输入新的密码,这种格式的密码是openssh格式的,和puttygen的export openssh格式是一致的。

当然,也可以根据命令提示直接输入ssh-keygen -p -P 12345 -N 54321 -f pkey-xshell 直接指定新旧密码。其中,假设旧密码是12345,新密码是54321。

这样,你就可以很方便的一次性更改了登录验证的私钥的保护密码了。私钥一定要保护好,不能泄漏。因为只要有人有了私钥,他可以按上面的方法更改成任何他想要的密码。然后,如果网络设备上的公钥不更换,持有该私钥的人可以一直访问设备。