paramiko模块

摘要:
python的paramiko模块基于SSH用于连接远程服务器并执行相关操作SSHClient用于连接远程服务器并执行基本命令基于用户名密码连接:importparamiko#创建SSH对象ssh=paramiko.SSHClient()#允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#

python的paramiko模块基于SSH用于连接远程服务器并执行相关操作

SSHClient

用于连接远程服务器并执行基本命令

基于用户名密码连接:

paramiko模块第1张paramiko模块第2张
importparamiko

#创建SSH对象
ssh =paramiko.SSHClient()
#允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
ssh.connect(hostname='host', port=22, username='name', password='123')

#执行命令
stdin, stdout, stderr = ssh.exec_command('df')
#获取命令结果
printstdout.read()

#关闭连接
ssh.close()
View Code
paramiko模块第3张paramiko模块第4张
importparamiko

transport = paramiko.Transport(('hostname', 22))
transport.connect(username='wupeiqi', password='123')

ssh =paramiko.SSHClient()
ssh._transport =transport

stdin, stdout, stderr = ssh.exec_command('df')
printstdout.read()

transport.close()
SSHClient 封装 Transport

基于公钥密钥连接:

paramiko模块第5张paramiko模块第6张
importparamiko

private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')

#创建SSH对象
ssh =paramiko.SSHClient()
#允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
ssh.connect(hostname='host', port=22, username='name', key=private_key)

#执行命令
stdin, stdout, stderr = ssh.exec_command('df')
#获取命令结果
result =stdout.read()
printresult
#关闭连接
ssh.close()
View Code
paramiko模块第7张paramiko模块第8张
importparamiko

private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')

transport = paramiko.Transport(('hostname', 22))
transport.connect(username='name', pkey=private_key)

ssh =paramiko.SSHClient()
ssh._transport =transport

stdin, stdout, stderr = ssh.exec_command('df')

transport.close()
SSHClient 封装 Transport
paramiko模块第9张paramiko模块第10张
importparamiko
from io importStringIO
#私钥
key_str = """-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAq7gLsqYArAFco02/55IgNg0r7NXOtEM3qXpb/dabJ5Uyky/8
NEHhFiQ7deHIRIuTW5Zb0kD6h6EBbVlUMBmwJrC2oSzySLU1w+ZNfH0PE6W6fans
H80whhuc/YgP+fjiO+VR/gFcqib8Rll5UfYzf5H8uuOnDeIXGCVgyHQSmt8if1+e
7hn1MVO1Lrm9Fco8ABI7dyv8/ZEwoSfh2C9rGYgA58LT1FkBRkOePbHD43xNfAYC
tfLvz6LErMnwdOW4sNMEWWAWv1fsTB35PAm5CazfKzmam9n5IQXhmUNcNvmaZtvP
c4f4g59mdsaWNtNaY96UjOfx83Om86gmdkKcnwIDAQABAoIBAQCnDBGFJuv8aA7A
ZkBLe+GN815JtOyye7lIS1n2I7En3oImoUWNaJEYwwJ8+LmjxMwDCtAkR0XwbvY+
c+nsKPEtkjb3sAu6I148RmwWsGncSRqUaJrljOypaW9dS+GO4Ujjz3/lw1lrxSUh
IqVc0E7kyRW8kP3QCaNBwArYteHreZFFp6XmtKMtXaEA3saJYILxaaXlYkoRi4k8
S2/K8aw3ZMR4tDCOfB4o47JaeiA/e185RK3A+mLn9xTDhTdZqTQpv17/YRPcgmwz
zu30fhVXQT/SuI0sO+bzCO4YGoEwoBX718AWhdLJFoFq1B7k2ZEzXTAtjEXQEWm6
01ndU/jhAasdfasdasdfasdfa3eraszxqwefasdfadasdffsFIfAsjQb4HdkmHuC
OeJrJOd+CYvdEeqJJNnF6AbHyYHIECkj0Qq1kEfLOEsqzd5nDbtkKBte6M1trbjl
HtJ2Yb8w6o/q/6Sbj7wf/cW3LIYEdeVCjScozVcQ9R83ea05J+QOAr4nAoGBAMaq
UzLJfLNWZ5Qosmir2oHStFlZpxspax/ln7DlWLW4wPB4YJalSVovF2Buo8hr8X65
lnPiE41M+G0Z7icEXiFyDBFDCtzx0x/RmaBokLathrFtI81UCx4gQPLaSVNMlvQA
539GsubSrO4LpHRNGg/weZ6EqQOXvHvkUkm2bDDJAoGATytFNxen6GtC0ZT3SRQM
WYfasdf3xbtuykmnluiofasd2sfmjnljkt7khghmghdasSDFGQfgaFoKfaawoYeH
C2XasVUsVviBn8kPSLSVBPX4JUfQmA6h8HsajeVahxN1U9e0nYJ0sYDQFUMTS2t8
RT57+WK/0ONwTWHdu+KnaJECgYEAid/ta8LQC3p82iNAZkpWlGDSD2yb/8rH8NQg
9tjEryFwrbMtfX9qn+8srx06B796U3OjifstjJQNmVI0qNlsJpQK8fPwVxRxbJS/
pMbNICrf3sUa4sZgDOFfkeuSlgACh4cVIozDXlR59Z8Y3CoiW0uObEgvMDIfenAj
98pl3ZkCgYEAj/UCSni0dwX4pnKNPm6LUgiS7QvIgM3H9piyt8aipQuzBi5LUKWw
DlQC4Zb73nHgdREtQYYXTu7p27Bl0Gizz1sW2eSgxFU8eTh+ucfVwOXKAXKU5SeI
+MbuBfUYQ4if2N/BXn47+/ecf3A4KgB37Le5SbLDddwCNxGlBzbpBa0=
-----END RSA PRIVATE KEY-----"""
private_key = paramiko.RSAKey(file_obj=StringIO(key_str))
transport = paramiko.Transport(('10.0.1.40', 22))
transport.connect(username='wupeiqi', pkey=private_key)

ssh =paramiko.SSHClient()
ssh._transport =transport

stdin, stdout, stderr = ssh.exec_command('df')
result =stdout.read()

transport.close()

print(result)
基于私钥字符串进行连接

SFTPClient

用于连接远程服务器并执行上传下载

基于用户名密码上传下载

paramiko模块第11张paramiko模块第12张
importparamiko

transport = paramiko.Transport(('hostname', 22))
transport.connect(username='name', password='123')

sftp =paramiko.SFTPClient.from_transport(transport)
#将location.py 上传至服务器 /tmp/test.py
sftp.put('/tmp/location.py', '/tmp/test.py')
#将remove_path 下载到本地 local_path
sftp.get('remove_path', 'local_path')

transport.close()
View Code

基于公钥密钥上传下载

paramiko模块第13张paramiko模块第14张
importparamiko

private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')

transport = paramiko.Transport(('hostname', 22))
transport.connect(username='name', pkey=private_key)

sftp =paramiko.SFTPClient.from_transport(transport)
#将location.py 上传至服务器 /tmp/test.py
sftp.put('/tmp/location.py', '/tmp/test.py')
#将remove_path 下载到本地 local_path
sftp.get('remove_path', 'local_path')

transport.close()
View Code

免责声明:文章转载自《paramiko模块》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇RocketMQ (三)RocketMQ 怎么保证的消息不丢失?使用Proteus模拟操作HDG12864F-1液晶屏下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

为ssh主机设置别名

情况 经常需要ssh远程主机,每次输入地址和端口号很繁琐,设置别名提高效率。 方法 编辑 $ vi ~/.ssh/config Host fav HostName 10.0.8.101 User kim Port 16384 保存后即可通过ssh fav进行连接...

Git系列(1) Windows下Git服务器搭建

  作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作。 (一)服务端软件和账号的安装配置   我们这里只需要两个软件git和ssh,软件版本如下,这两个版本的安装也是非常简单,基本只要注意一点即可:安装目录最好不要用默认路径,确保安装路径中没有空格。其他步骤基本一路Next即可。 ...

虚拟机与ubuntu系统的安装与基础操作

1.虚拟机的下载: 常见的虚拟机软件有:VMware VirtuaIBOX Virtual PC 等。 这里主要介绍VMware ,VMware目前已经有很多个版本,可以根据个人情况进行选择。安装完成后打开选择个人或家庭免费使用。 2.ubuntu iso包下载: linux各发行版本下载地址 <-这个是个人推荐的一个linux各发行版本的下载地址。...

linux SFTP用户创建 不允许用户登录,并且连接只允许在制定的目录下进行操作

1.创建用户 groupadd sftp 2.添加用户并设置为sftp组  useradd -g sftp -s /sbin/nologin -M sftp    (/sbin/nologin为禁止登录shell的用户) 3.设置用户密码 passwd sftp 4.创建用户目录。并设置权限。 cd /home mkdir sftp chown root:...

虚拟机下CentOS7开启SSH连接

在虚拟机(Vmware Workstation)下,安装了CentOS7,现在想通过SSH工具连接虚拟机中的CentOS7 1、  首先,要确保CentOS7安装了  openssh-server,在终端中输入  yum list installed | grep openssh-server 此处显示已经安装了  openssh-server,如果又没...

【Hadoop系列】linux SSH原理解析

本文中斜体加粗代表shell指令,操作环境 CentOS6.5 linux root免密码登录链接:【Hadoop系列】linux下 root用户免密码登录远程主机 ssh。 linux 非root用户免密码登录:XXXXXXX(暂未写好) Linux下,使用ssh协议登录远程计算机。让我们先来了解下什么是SSH。 一、什么是SSH?简单说,SSH是一种网...