分享免费的编程资源和教程

网站首页 > 技术教程 正文

使用python通过SSH登陆linux并操作

goqiw 2024-09-03 21:07:48 技术教程 17 ℃ 0 评论

paramiko模块是基于Python实现的ssh远程安全链接,实现命令远程、文件传输、SSH代理等功能。本文详细介绍了paramiko模块常用的方法,且实用价值非常高,稍作修改就能做出一个实用的运维工具。

安装

letong@me:~$ sudo pip install paramiko

简单的远程执行命令实例

#!/usr/bin/env python
import paramiko
hostname='127.0.0.1'
username='root'
password='123456'
port=2222
ssh=paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.connect(hostname=hostname,port=port,username=username,password=password)
stdin,stdout,stderr=ssh.exec_command('ls /')
print stdout.read()
ssh.close()

SSHClient类

SSHClient类是SSH服务会话的高级表示,封装了传输、通道以及SFTPClient的校验、建立方法,通常用于执行命令。

connect方法

connect(self, hostname, port=22, username=None, password=None, pkey=None, Key_filename=None, timeout=None, allow_agent=True, look_for_keys=True, compress=False)

参数说明:

hostname,连接目标的主机地址 port,连接目标的端口,默认22 username,用户名 password,用户密码 pkey,私钥方式用户验证 key_filename,私钥文件名 timeout,超时时间 allow_agent,是否允许ssh代理 look_for_keys,是否允许搜索私钥文件 compress,打开时是否压缩

exec_command方法

exec_command(self, command, bufzise=-1)

参数说明:

command,执行的命令 bufsize,文件缓冲区大小,-1不限制

load_system_host_keys方法

load_system_host_keys(self, filename=None)

参数说明:

filename,指定远程主机公钥文件

set_missing_host_key_policy方法

ssh=paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

参数说明:

AutoAddPolicy,自动添加主机名及密钥到本地并保存,不依赖load_system_host_keys()配置 RejectPolicy,自动拒绝未知主机名和密钥,依赖load_system_host_keys()配置 WarnningPolicy,功能与AutoAddPolicy相同,但是未知主机会报警

SFTPClient类

根据SSH传输协议的sftp会话,实现远程文件上传、下载等操作。

from_transport方法

from_transport(cls, t)

参数说明:

t,一个已通过验证的传输对象

例:

>>> import paramiko >>> a = paramiko.Transport((“127.0.0.1″,2222)) >>> a.connect(username=”root”, password=’123456′) >>> sftp = paramiko.SFTPClient.from_transport(a)

put方法

put(self, localpath, remotepath, callback=None, confirm=True)

参数说明:

localpath,上传源文件的本地路径 remotepath,目标路径 callback,获取接收与总传输字节数 confirm,上传完毕后是否调用stat()方法,以便确认文件大小

例:

>>> localpath=’ftp-test.log’ >>> remotepath=’/data/ftp-test.log’ >>> sftp.put(localpath,remotepath)

get方法

get(self, remotepath, localpath, callback=None)

参数说明:

remotepath,需要下载的远程文件 localpath,本地存储路径 callback,同put方法

其他方法

mkdir,用于创建目录 remove,删除目录 rename,重命名 stat,获取文件信息 listdir,获取目录列表

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表