《卡死你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被控机改密码。
我全封装好了哦