下面我将为您讲解“python批量修改ssh密码的实现”的完整实例教程,包含以下内容:
- 前置条件
- 实现思路
- 代码实现
- 示例演示
- 注意事项
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。那么我们可以按照以下步骤进行操作:
- 将上述代码保存为
update_password.py
文件。 - 打开终端,进入到
update_password.py
所在的文件夹。 - 执行命令:
python update_password.py
。 -
执行结果如下图所示,我们可以看到在连接成功的各个主机上,输出了修改密码的成功信息。
------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密码的实现”的完整实例教程,希望对您有所帮助。