paramiko的基本使用方法
paramiko
是一个基于SSH2协议的远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作
ssh连接服务器
1.ssh server 建立 server public key ,对应文件/etc/ssh/ssh_host_*
2.ssh client 发送连接请求
3.ssh server 发送 server public key 给 ssh client
4.ssh client 比较 server public key ,并计算出自己的client pubic and private key
5.ssh client 发送 client public key 到 ssh server
6.ssh server 使用 server private key 解密
paramiko 安装
pip install paramiko
paramiko 使用
sshclient: 实现SSH
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import paramiko
hostanme = 'hostanme'
port = 22
username = 'username'
password = 'password'
# 建立一个SSH Client对象
ssh_client = paramiko.SSHClient()
# 允许将信任的主机自动加入到host_allow列表
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 调用connect方法连接服务器
ssh_client.connect(hostanme=hostname,port=port,username=username,password=password)
# 执行命令,返回三个变量,输入、输出和错误
stdin,stdout,stderr = ssh_client.exec_command('ls')
for i in stdout:
print(i)
ssh_client.close()
transport:实现SFTP
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import paramiko
hostanme = 'hostanme'
port = 22
username = 'username'
password = 'password'
# 建立一个Trans对象
transport = paramiko.Transport((hostname,port))
# 建立连接
transport.connect(username=username,password=password)
# 建立一个SFTP Client对象
sftp_client = paramiko.SFTPClient.from_transport(transport)
# 文件上传
sftp_client.put('C:\\User\\Admin\\Desktop\\test.txt','/root/')
# 文件下载
sftp_client.get('/root/test.txt','C:\\User\\Admin\\Desktop')
sftp_client.close()