1. 介绍:
paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来实现。
安装: python3.6 -m pip install paramiko
2. 使用:
SSHClient
用于连接远程服务器并执行基本命令
基于用户名密码连接:
#!/usr/bin/env python3 # _*_ coding:utf-8 _*_ import paramiko ip,port = '10.0.3.60','22' username,password = 'lishichao','123 # 创建ssh对象 ssh = paramiko.SSHClient() # 解决ssh第一次连接,认证问题 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(ip,port,username,password) # 执行命令 stdin,stdout,stderr = ssh.exec_command('hostname') # stdin 标准输入, stdout 命令执行的结果, stderr 命令执行错误的结果
# 获取命令结果 ret = stdout.read() if ret: print(ret.decode('utf-8').strip()) else: print("命令执行失败") print(stderr.read().decode('utf-8').strip()) # 关闭连接 ssh.close() # 执行结果: b'docker-server\n' # byte 类型,需要decode转码
基于公钥密钥连接:
#创建秘钥对 ssh-keygen # 推送到指定服务器 ssh-copy-id -i .ssh/id_rsa.pub 用户名字@192.168.x.xxx