使用paramiko操控远程服务器执行命令

发布时间 2023-07-11 21:37:02作者: realzhangsan

使用paramiko操控远程服务器执行命令

当我们需要在n多台远程服务器上执行相同的操作时,一台一台挨个去手动登录并执行命令很耗时,而且显得很呆。这时候使用程序自动连接并执行命令是明智之举。这里记录使用paramiko操控远程主机的实践过程

python安装paramiko模块

pip install paramiko

写脚本

import paramiko          #导入paramiko模块

# 这里先读取一个远程服务器ip列表
f = open("iplist") 
iplist = f.readlines()
f.close()
# 本过程使用公私密钥对进行身份认证,此处是指定ssh私钥位置
pKey = paramiko.RSAKey.from_private_key_file("C://Users//hanqing//.ssh//id_rsa")

for ip in iplist :
    ip = ip.strip()
    ssh = paramiko.SSHClient()
    #load_system_host_keys()是载入用户.ssh目录下的known_hosts文件,如果knowns_hosts文件中没有目标主机的key,程序会抛出异常,连接失败;
    ssh.load_system_host_keys()
    #ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())    如果不方便验证目标主机 host key,可以用这个函数替换ssh.load_system_host_keys()
    ssh.connect(hostname=ip, port=22, username="username", pkey=pKey)
    stdin, stdout, stderr = ssh.exec_command("cd /home && ls")
    outputs = stdout.readlines() #outputs是一个输出结果list
    for out in outputs :
        print(out)
    ssh.close()

以上是一个简单的批量操控远程服务器执行命令的脚本