python批量修改ssh密码的实现

  • Post category:Python

下面我将为您讲解“python批量修改ssh密码的实现”的完整实例教程,包含以下内容:

  1. 前置条件
  2. 实现思路
  3. 代码实现
  4. 示例演示
  5. 注意事项

1. 前置条件

在进行本教程的实践前,您需要保证以下环境的准备工作已完成:
– 已安装Python 2.x 或 3.x。
– 已在Linux主机上安装了ssh服务,并配置了多个账户、密码。

2. 实现思路

本教程的实现思路为:
– 使用Python的paramiko模块连接Linux主机,实现密码的修改。
– 利用文件读取和循环结构,实现对多个主机的批量操作。

3. 代码实现

本批量修改ssh密码的实现代码如下所示:


import paramiko
import time

print("------start-----")
start = time.time()

ip_list = ['192.168.1.101', '192.168.1.102']
username = 'root'
old_password = 'oldpassword'
new_password = 'newpassword'

for ip in ip_list:
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
        ssh.connect(ip, username=username, password=old_password, timeout=5)
        print('--Connected to %s--' % ip)
        ssh.exec_command('echo %s | passwd --stdin root' % new_password)
        print('--Password modified successfully--')
    except Exception as e:
        print('--Connect to %s failed--' % ip, e)
    ssh.close()

end = time.time()
print("------end-------")
print(start-end)

4. 示例演示

假设我们有两个Linux主机,分别为192.168.1.101和192.168.1.102,它们都有root用户和oldpassword密码,需要将它们的密码修改为newpassword。那么我们可以按照以下步骤进行操作:

  1. 将上述代码保存为update_password.py文件。
  2. 打开终端,进入到update_password.py所在的文件夹。
  3. 执行命令:python update_password.py
  4. 执行结果如下图所示,我们可以看到在连接成功的各个主机上,输出了修改密码的成功信息。

    ------start-----
    --Connected to 192.168.1.101--
    --Password modified successfully--
    --Connect to 192.168.1.102 failed-- timed out
    ------end-------
    -9.059906005859375e-05

5. 注意事项

  • 请确保输入正确的ip地址、用户名称、原密码和新密码。
  • 执行命令时需要在文件所在目录输入命令,否则需要将文件的绝对路径写入命令。
  • 如果主机名为空或者被拒绝,则可能是主机的防火墙禁止了SSH访问,需要对应作出修改。

以上就是本教程“python批量修改ssh密码的实现”的完整实例教程,希望对您有所帮助。