模块简介
paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。
下载安装
pip3 install paramiko
应用实例
SSHClient
用于连接远程服务器并执行基本命令
import paramiko
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='localhost', port=22, username='root', password='xxx')
# 执行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read()
print(result.decode('utf-8'))
# 关闭连接
ssh.close()
开启SSH端口
-
tips: 若提示如下错误,需要开启22端口
-
以ubuntu为例,执行如下命令开启SSH
cat /etc/ssh/ssh_config # 查看端口是否为22 netstat -ntl | grep 22 # 查看22端口是否开通 sudo ufw disable # 关闭防火墙 sudo apt install openssh-server openssh-client # 安装openSSH netstat -ntlp | grep 22 # 再次查看22端口是否打开
SSHClient 封装 Transport
import paramiko
transport = paramiko.Transport(('localhost', 22))
transport.connect(username='root', password='xxx')
ssh = paramiko.SSHClient()
ssh._transport = transport
stdin, stdout, stderr = ssh.exec_command('df')
res=stdout.read()
print(res.decode('utf-8'))
transport.close()
SFTPClient
用于连接远程服务器并执行上传下载