PowerShell免费软件

《kasini3000》批量修改linux被控机密码

 

《卡死你3000》,是开源,免费,跨平台的devops批量脚本框架。

网址:码云家

https://gitee.com/chuanjiao10/kasini3000

 

 

 

批量生成密码之产生随机数:

默认产生16位大小写加数字密码

 

你可以通过控制这个脚本,来限制随机数。

c:\ProgramData\kasini3000\cs产生随机数.ps1 #不需要你自己运行这个脚本,它将被下一个脚本自动调用

 

比如:没有特定字母

批量生成密码,并写入nodelist.csv:

cs产生所有被控机旧密码并写入nodelist.ps1

 

此脚本会调用【cs产生随机数.ps1】,会在nodelist.csv的【旧密码】字段,写入16位大小写加数字的随机数。再运行一遍脚本,则重新生成并写入nodelist.csv。

对于nodelist.csv中的linux被控机,也会生成随机数密码。

 

linux被控机,批量修改密码:

zkj_s所有linux被控机改密码_验证周期_改密码_验证_对调密码_写入时间戳.ps1

 

1 命令是在主控机运行,支持win主控机,linux主控机,mac主控机

2 脚本只会修改linux被控机的密码。脚本修改完密码后会验证。

验证改密成功后,会把【当前密码】和【旧密码】字段中的字串对调,并写入【改密时间】字段。

 

再次运行脚本,并不会把密码改回来。除非使用参数 【-force_change_pwd】

有默认密码修改周期限制。值是30days。变量在【c:\ProgramData\kasini3000\config.ps1】文件的【$global:被控机密码_变更周期】

 

3 写入日志文件:

用参数 -Write_Log

日志文件位置:

c:\users\你的用户名\Documents\kasini3000\卡死你3000日志文件.txt

/root/kasini3000/卡死你3000日志文件.txt

 

4脚本依赖-win主控机:

Nodelist.csv

Ssh公钥已经推送。

Powershell的Winscp模块。

脚本依赖-linux主控机:

Nodelist.csv

Ssh公钥已经推送。

Sshpass

脚本依赖-linux被控机:

chpasswd

 

先要在卡死你3000主控机,产生秘钥。推送秘钥。才能批量改linux被控机密码。

主控机产生秘钥:

gx更新主控机ssh秘钥1.ps1

 

#随时更新,秘钥1会备份

 

gx更新主控机ssh秘钥2z.ps1

 

#秘钥1更新10日内,禁止更新秘钥2,秘钥2不备份

 

gx更新主控机上的_双公钥文件authorized_keys.ps1

 

#linux公钥在主控机上2合1,产生一个包含双公钥的文件,并存储在

c:\users\你的用户名\Documents\kasini3000\ssh_key_files_old1

或linux:

/root/kasini3000/ssh_key_files_old1/authorized_keys

目录下

主控机推送秘钥到被控机:

1先在每台被控机上编辑sshd_config文件,开启root密码登录。 #linux一键安装powershell脚本已经做了这一步。

 

2 在win主控机上执行:winscp复制主控机公钥到被控机_win2linux_pwd.ps1 -ipaddress nodeip -root_password 'xxx'

 

 

在linux主控机上执行: ssh-copy-id root@被控机ip #每台被控机的ip,都要输入一遍。

 

或 把root账户,密码写入nodelist.csv的【当前密码】字段。----这个方法最简单。因为kasini3000会首先尝试用秘钥1,秘钥2,连接linux被控机。若连接失败,则尝试用nodelist.csv中的账户,密码连接linux被控机。

 

结论:步骤并不复杂。

1在主控机产生2套公私钥。只需要安装时运行1次。

2用nodelist.csv中的【当前root密码】,登录被控机。推送公钥。只需要安装时运行1次。

如果你的某台或全部linux被控机,已经做过ssh-key-file免密登录,则不需要再做步骤1,2.

3 在nodelist.csv中的【旧密码】字段,批量写入随机数。

4 运行linux批量改密脚本。脚本通过私钥登录,通过chpasswd改密,通过winscp模块,或sshpass验证。并对调【当前密码】和【旧密码】字段。

 

5不要小看我的框架和脚本。你打开nodelist.csv看看,在win被控机的【旧密码】字段,也被写入了16位随机数。

你只要再运行这个脚本【zkj_s所有win被控机改密码_验证周期_改密码_验证_对调密码_写入时间戳.ps1】即可给所有win被控机改密码。

我全封装好了哦

 

posted on 2022-02-03 17:37  PowerShell免费软件  阅读(329)  评论(0编辑  收藏  举报

导航