Python并行SSH是一种通过Python编程语言实现的并行执行SSH命令的方法。它可以同时连接多个远程服务器,并通过传递多个用户名和密码来进行身份验证。
在Python中,可以使用paramiko库来实现SSH连接和执行命令。Paramiko是一个纯Python实现的SSHv2协议库,可以在Python中进行SSH连接和操作。
以下是一个示例代码,演示如何使用Python并行SSH传递多个用户名和密码:
import paramiko
from getpass import getpass
def ssh_command(hostname, username, password, command):
# 创建SSH客户端对象
client = paramiko.SSHClient()
# 自动添加远程主机的SSH密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 连接远程主机
client.connect(hostname, username=username, password=password)
# 执行命令
stdin, stdout, stderr = client.exec_command(command)
# 输出命令执行结果
print(stdout.read().decode())
except paramiko.AuthenticationException:
print(f"Authentication failed for {username}@{hostname}")
finally:
# 关闭SSH连接
client.close()
# 服务器列表
servers = [
{"hostname": "server1.example.com", "username": "user1", "password": getpass("Enter password for user1: ")},
{"hostname": "server2.example.com", "username": "user2", "password": getpass("Enter password for user2: ")},
# 可以添加更多的服务器
]
# 执行的命令
command = "ls -l"
# 并行执行SSH命令
for server in servers:
ssh_command(server["hostname"], server["username"], server["password"], command)
在上面的代码中,首先导入了paramiko库和getpass模块。然后定义了一个ssh_command
函数,用于连接远程主机并执行命令。在函数内部,创建了一个SSH客户端对象,设置了自动添加远程主机的SSH密钥策略。然后尝试连接远程主机,并执行指定的命令。最后关闭SSH连接。
接下来,定义了一个服务器列表servers
,其中包含了多个服务器的主机名、用户名和密码。然后定义了要执行的命令command
。
最后,使用一个循环遍历服务器列表,调用ssh_command
函数并传递相应的主机名、用户名、密码和命令来并行执行SSH命令。
这样,就可以通过Python并行SSH传递多个用户名和密码来执行SSH命令了。
腾讯云相关产品和产品介绍链接地址:
以上是关于Python并行SSH传递多个用户名和密码的完善且全面的答案,希望对您有帮助!
领取专属 10元无门槛券
手把手带您无忧上云