任俊达
Articles17
Tags9
Categories0
python详解paramiko

python详解paramiko

paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。paramiko支持Linux, Solaris, BSD, MacOS X, Windows等平台通过SSH从一个平台连接到另外一个平台。利用该模块,可以方便的进行ssh连接和sftp协议进行sftp文件传输。

一、SSHClient类

SSHClient的作用类似于Linux的ssh命令,是对SSH会话的封装,该类封装了传输(Transport),通道(Channel)及SFTPClient建立的方法(open_sftp),通常用于执行远程命令。

ssh远程连接服务器 connet()

1
connect(ip, port=22, username=None, password=None, pkey=None, key_filename=None, timeout=None, allow_agent=True, look_for_keys=True, compress=False, sock=None, gss_auth=False, gss_kex=False, gss_deleg_creds=True, gss_host=None, banner_timeout=None, auth_timeout=None, gss_trust_dns=True, passphrase=None)

参数说明:

  • ip(str类型),连接的目标主机地址;
  • port(int类型),连接目标主机的端口,默认为22;
  • username(str类型),校验的用户名(默认为当前的本地用户名);
  • password(str类型),密码用于身份校验或解锁私钥;
  • pkey(Pkey类型),私钥方式用于身份验证;
  • key_filename(str or list(str)类型),一个文件名或文件名列表,用于私钥的身份验证;
  • timeout(float类型),一个可选的超时时间(以秒为单位)的TCP连接;
  • allow_agent(bool类型),设置为False时用于禁用连接到SSH代理;
  • look_for_keys(bool类型),设置为False时用于来禁用在~/.ssh中搜索私钥文件;
  • compress(bool类型),设置为True时打开压缩。
1
2
3
4
import paramiko
ssh = paramiko.SSHClient()
ssh.connect(ip,22,username,passwd,timeout=5)
此处ip、username、passwd都作为变量

执行命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import paramiko
client = paramiko.SSHClient()
client.load_system_host_keys()
# 目的是接受不在本地Known_host文件下的主机
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# connect 函数可以接受很多参数
client.connect(ip, port, txt_username, txt_password, timeout=5, allow_agent=False, look_for_keys=False)
remote_conn = client.invoke_shell()
time.sleep(3)
# 实现当前目录下的东西
remote_conn.send('ls\n')
# 获取命令的执行结果
output = remote_conn.recv(2065535)
# 关闭连接
client.close()
Author:任俊达
Link:https://renjunda.ren/lxb/b2d1c38.html
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×