Watch 1 Star 1 Fork 0

general / eptsshShellMIT

Join us
Explore and code with more than 2 million developers,Free private repositories !:)
Sign up
使用expect工具, 批量验证ssh公钥/密码的正确性, 批量拷贝公钥到目标主机 spread retract

Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

eptssh

使用expect工具, 批量验证ssh公钥/密码的正确性, 批量拷贝公钥对目标主机的脚本工具.

check_passwd.sh会尝试直接连接列表中的主机, 如果其所在服务器持有目标主机的公钥权限, 自然可以直接登录, 如果没有, 就会尝试输入列表中的密码, 以验证密码正确性.

copy_key.sh是在当前主机拥有所有目标主机的权限的情况下, 拷贝另一个公钥到目标主机, 重复公钥不会拷贝.

1. 准备

需要一台安装有except工具的linux主机.

$ yum install except

2. check_passwd使用方法

check_passwd.sh需要与expect_ssh.sh放在相同目录下. 其余所需参数需要在check_passwd.sh文件中定义...没有用getopt, 嫌太麻烦, 总共也就3,4个参数.

  1. ip_list: 待检测IP/密码列表文件, 该文件的格式为: 192.168.1.1 passwd(以空格分隔).

  2. USER: ssh登录用户, 全局只能设置一个, 所有ip_list文件中的主机都将使用这个用户尝试登录. 当然, 要二次定义的话也很容易的, 只需要修改check_passwd.ship_list表示的文件格式即可, 因为是调用except.sh脚本.

  3. login_log: 输出日志, 不过比较杂乱, 需要使用sublime/vscode等文本编辑器二次处理.

最后, 注意保证check_passwd.shexpect_ssh.sh拥有执行权限.

直接执行./check_passwd.sh即可.

3. copy_key使用方法

copy_key.sh需要与except_ssh.sh, expect_ssh_copy_id.sh放在相同目录下, 需要有可执行权限. 参数在copy_key.sh中定义.

ip_list: IP/密码对应列表文件名

USER: ssh登录用户

key_file: 待导入公钥名称

import_log: 导入结果日志. 内容也很杂乱, 需要手动筛选.

其他日志什么的不重要.


FAQ

  1. 注意: 所有文件的换行符必须为Unix类型, 否则可能会出现许多匪夷所思的问题, 尽量提前避免吧.

Comments ( 0 )

Sign in for post a comment

Shell
1
https://gitee.com/generals-space/eptssh.git
git@gitee.com:generals-space/eptssh.git
generals-space
eptssh
eptssh
master

Help Search

191139_cd20d5fd_5186603 191143_ebef6f8d_5186603