iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python paramiko使用
  • 163
分享到

python paramiko使用

pythonparamiko 2023-01-31 01:01:56 163人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

 Http://www.lag.net/paramiko/ Working with paramiko sshClient is the main class provided by the paramkio mod

 Http://www.lag.net/paramiko/

Working with paramiko

sshClient is the main class provided by the paramkio module. It provides the basic interface you are Going to want to use to instantiate [url=]server[/url] connections. The above code creates a new SSHClient object, and then calls ”connect()” to connect us to the local SSH server.
Here’s a simple example:

1
import paramiko

 

2
ssh = paramiko.SSHClient()


Another way is to use an SSH key:

1
import paramiko

 

2
import os

 

3
privatekeyfile = os.path.expanduser('~/.ssh/id_rsa')
 

 

4
mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)

 

5
ssh.connect('192.168.1.2', username = 'vinod', pkey = mykey)


注意:(这里的key,用的是RSAkeylinux下我们在用ssh-keygen -t rsa来指定它,windows下需要原始pem文件格式才可以在这里用,否则将会报无法识别的RSA KEY。类似如下
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAlL0Zti0UgsdpmOK1yA6WaIxrqOiWD3lz/8DBfWydI3YcBpjsv//vvH4KuduU
0Wic+lLwe9Yu7axsOCmWjIfmh35Rdj0+LNkhHtfybRGrRpZrEQ2wHrBUgMumLFVPIHEsv2zMbBkd
r2atRd4by+BS/4kBn1NaElTW8Tw5FlVUsk43Dmh4q4wczMHcghsRxFXLj78LRew37iXLYfHBEKDA
n/F71rKuuTiPXLDGaCwq5o8tUa51p/TKRpm5caBI25i7pmLQUo7IY1vWShSdaif7Jq61jEU3EkJq
Jj8u9W7iYAYBPq/xw8TKE6i9EzD57ug7JDElulI2rphdIkuT9zj//wIDAQABAoIBACBGbGbgn1vF
g79+Km3v5GlpVw8+8RkIhMhRfmsF/48rWOeAJt6s3cusGg28fS13ouCa0L4+es5uJMmHFLkH4Fk0
at7aaTx4HTzBJUTPmbfmefMoYjg2kQ+loThrhpEGnewn4q/uP0fJYv4PNT7nPXtfsm9tOdVSfZW5
OLYE7C0IgQv0QLe7SkR6Vkz3Qi2gbmIaMu82pP5ugk1NA4OKIrkPJbzOEtkf3d8iblrU0baeYa6I
FWM42ChOzoITkN1jYJvudGjERa3/zRb80OEF6evz9SKHOxjy9jzgubdwQt9Crl3Zf90qv/ZGC1G3
6EmBy51xFMVEXAELd/6o8j6ENEkCgYEA0g5DGbAodqbLTp1Qf7FtE2t5WCYSzzwVNbQimLV1vOUG
tY3hVLywIpA1Kujf1dNOmTJVUuiBPPlcU/YjHMT9h33wRDc0oXMQx2++MF0aQtRy6U4iFRQJWs+v
d8J1eQ8jgEhQNZLWrqK6zue0jW6YFO2Wlz/GCOACbkp40FJysHUCgYEAtUV81BUTy07DAHfV+yIJ
kms5UGDle/lOTHzyhBmc2gRdoMm/jeGgL+ZGC0OespXaDewn8F/AP+2m+pLDfMEKYZ/VIrjICx0T
0BpxW9OPdUkuVMH5VwW6fNgsVh0jjwUZfLj0gUvSHSjsUUpomqG487uRkeklkLNANXqTi2YDYCMC
gYAC1IRc7T2uU5L7rSzve4F/uHv7DxBD0Ihsn8+zhQZgFCnh+lZl4ODypkTBHkAdzmoJsF7r7gwH
uUhgLTnN4m2UDMNW9/NylYQSidPjLO30po4hzJay+AEkQxYXI/yXM/gDe3XxMthHpBOmRALvwOS1
q3nS8d4GMpZ1y/USwXmgHQKBgDJAaTKCBVK/Kt/eWLud2/lzMBhQRE3x9vrNSI3Ga+0keLAyPaAf
hEDDHXfR7xSi5igl54yDftA6GagtN3RGL5KQtI1DnHE4Rl3Sdsp2A7cH6ogknfK569DgPKpCubDU
QRSKUX3mfwEGbzy52/XCD3vB68D/WSKcDpjEulJSnWzxAoGAB7oGwMMnwy2GSxAuPiiXOl4n5hwa
vJ15qCmKTSYx7eWCu1zCE3NYW6Pvohz+YRJqilAOt45uNK65g6w/ZbX/oh2lujDd3VU4INU4fKCS
FCkypPZFAxnG70tuo/US/4W34zOAxoALrIC0uOHyXD2P1yYcQgIkNp7VmoZ7FK/7LMs=
-----END RSA PRIVATE KEY-----



而且如果你的RSA Key有密码的话,你还需要
mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile,passWord='12345678')




不过,我们可以用publickey来登录的。
解法如下:
serverHost = "127.0.0.1"
serverPort = 22
userName = "root"
keyFile = "~/.ssh/badboy"
known_host = "~/.ssh/known_hosts"
channel = paramiko.SSHClient();
channel.load_system_host_keys( known_host )
channel.connect( serverHost, serverPort,username = userName, key_filename = keyFile )



Running Simple Commands
Lets run some simple commands on a remote Machine.

1
import paramiko
2
ssh = paramiko.SSHClient()

 

3
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())<=这样的话,就会报paramiko.SSHException: Unknown server

 

4
ssh.connect('beastie', username='vinod', password='secret')

 

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

 

6
print stdout.readlines()

 

7
ssh.close()


“paramiko.AutoAddPolicy()” which will auto-accept unknown keys.

Using sudo in running commands:

01
import paramiko


02

03
cmd = "sudo /etc/rc.d/apache2 restart"


04

05
ssh = paramiko.SSHClient()

 

06
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

 

07
ssh.connect('beastie', username='vinod', password='secret')

 

08
stdin, stdout, stderr = ssh.exec_command(cmd)

 

09
stdin.write('secret\n')

 

10
stdin.flush()

 

11
print stdout.readlines()

 

12
ssh.close()


在这个例子中,无法运行,也无法解释,希望志同道合的朋友能给个解释!



Secure File Transfer Using SFTPClient
SFTPClient is used to open an sftp session across an open ssh Transport and do remote file operations.
An SSH Transport attaches to a stream (usually a Socket), negotiates an encrypted session, authenticates, and then creates stream tunnels, called[url=]Channel[/url]s, across the session. Multiple channels can be multiplexed across a single session (and often are, in the case of port forwardings).
以下是用密码认证功能登录的
#!/usr/bin/env python
import paramiko
socks=('127.0.0.1',22)
testssh=paramiko.Transport(socks)
testssh.connect(username='root',password='000000')
sftptest=paramiko.SFTPClient.from_transport(testssh)
remotepath="/tmp/a.log"
localpath="/tmp/c.log"
sftptest.put(remotepath,localpath)
sftptest.close()
testssh.close()

以下是用DSA认证登录的(PubkeyAuthentication)
#!/usr/bin/env Python
import paramiko

serverHost = "192.168.1.172"
serverPort = 22
userName = "root"
keyFile = "/root/.ssh/zhuzhengjun"
known_host = "/root/.ssh/known_hosts"
channel = paramiko.SSHClient();
#host_keys = channel.load_system_host_keys(known_host)
channel.set_missing_host_key_policy(paramiko.AutoAddPolicy())
channel.connect(serverHost, serverPort,username=userName, key_filename=keyFile )
testssh=paramiko.Transport((serverHost,serverPort))
mykey = paramiko.DSSKey.from_private_key_file(keyFile,password='xyxyxy')
testssh.connect(username=userName,pkey=mykey)
sftptest=paramiko.SFTPClient.from_transport(testssh)
filepath='/tmp/e.log'
localpath='/tmp/a.log'
sftptest.put(localpath,filepath)
sftptest.close()
testssh.close()

以下是用RSA Key认证登录的
#!/usr/bin/evn python

import os
import paramiko

host='127.0.0.1'
port=22
testssh=paramiko.Transport((host,port))
privatekeyfile = os.path.expanduser('~/.ssh/badboy')
mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile,password='000000')
username = 'root'
testssh.connect(username=username, pkey=mykey)
sftptest=paramiko.SFTPClient.from_transport(testssh)
filepath='/tmp/e.log'
localpath='/tmp/a.log'
sftptest.put(localpath,filepath)
sftptest.close()
testssh.close()

--结束END--

本文标题: python paramiko使用

本文链接: https://www.lsjlt.com/news/185169.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python paramiko 使用
       python 下的paramiko功能很之强大。我们所熟悉的Ansible就是用paramiko编写。paramiko主要是通过ssh协议对远程主机的管理。比如:执行远程主机的CLI、上传和下载文件等。1.通过使用paramiko 远...
    99+
    2023-01-31
    python paramiko
  • python paramiko使用
     http://www.lag.net/paramiko/ Working with paramiko SSHClient is the main class provided by the paramkio mod...
    99+
    2023-01-31
    python paramiko
  • Python使用Paramiko模块实现
    paramiko是用python写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。利用该模块,可以方便的进行ssh连接和sftp协议进行sftp文件传输以及远程命令执行。 通过安装包安装: wget ...
    99+
    2023-01-31
    模块 Python Paramiko
  • python paramiko
    Win7下Python2.7环境安装paramiko模块Win7下Python2.7环境安装paramiko模块,有需要的朋友可以参考下近段时间用Python写一个小东西,每次修改代码后要手工上传到服务器,觉得很麻烦,虽然有WinSCP,找...
    99+
    2023-01-31
    python paramiko
  • python paramiko模块的使
    一般使用paramiko的功能就是通过ssh远程执行命令,远程(上传、下载)传输文件等等依赖包:/usr/local/python27/bin/pip install pycrypto下载包 paramiko#wget http://en....
    99+
    2023-01-31
    模块 python paramiko
  • 【python】--paramiko 连
    在使用AWS(亚马逊)的云机器, AWS 管理面板中生成密钥。使用python的Paramiko 连接服务器import paramiko k = paramiko.RSAKey.from_private_key_file("/home/e...
    99+
    2023-01-31
    python paramiko
  • python学习-paramiko简单使
        paramiko是基于python实现的ssh2远程安全连接,支持认证及密钥方式。可以实现远程命令执行,文件传输、中间ssh代理等功能。安装:pip install paramiko或 easy_install paramikopa...
    99+
    2023-01-31
    简单 python paramiko
  • 怎么使用Python远程控制模块Paramiko
    本篇内容主要讲解“怎么使用Python远程控制模块Paramiko”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python远程控制模块Paramiko”吧!概述ssh是一个协议,Ope...
    99+
    2023-06-16
  • python3:使用paramiko交互
    小程序如下:#!/usr/bin/env python3 # -*- coding: utf-8 -*- import paramiko RED_COLOR='\033[1;31;48m'  #红 ,配置终端输出的颜色 BLUE_COLOR...
    99+
    2023-01-31
    paramiko
  • 利用Python Paramiko开发l
    1.Paramiko模块下的demo.py程序    前面利用Python中的Paramiko模块可以进行SSH的连接,以及用来传送文件(SFTP),但是无论是哪一种方式,连接都是短暂的,并非是长连的,即一次执行一个命令或上传与下载一个文件...
    99+
    2023-01-31
    Python Paramiko
  • python 利用paramiko批量管
    paramiko是基于python实现的ssh2远程安全连接,支持秘钥认证,实现远程命令执行,文件传输,中间ssh代理等功能安装paramikoparamiko依赖第三方的crypto,ecdsa,python-develyum insta...
    99+
    2023-01-31
    批量 python paramiko
  • python paramiko模块
        paramiko模块是python中很重要的模块,他的功能呢主要分为两大块功能。一个是模拟SSH功能登录到远程主机上执行命令。一个是模拟SFTP功能传输文件。paramiko支持密码登陆方式和免密码的私钥登录方式。密码登陆方式代码如...
    99+
    2023-01-31
    模块 python paramiko
  • python的paramiko模块
      paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。  由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, ...
    99+
    2023-01-31
    模块 python paramiko
  • python中paramiko的sftp
    from_transport(cls, t)从一个开放的L(传输)创建一个SFTP客户端通道close(self):关闭SFTP会话和它的底层通道def get_channel(self):为该SFTP会话返回底层L(通道)对象。这样可以对...
    99+
    2023-01-31
    python paramiko sftp
  • Python 之 paramiko 模块
    paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接1.安装#paramiko模块的安装需要先安装PyCrypto模块 wget https://pypi.python.or...
    99+
    2023-01-31
    模块 Python paramiko
  • 如何在python中使用paramiko第三方库
    这期内容当中小编将会给大家带来有关如何在python中使用paramiko第三方库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性...
    99+
    2023-06-06
  • python多线程paramiko
    初学python,网上找发些关于paramiko实现python多线程的功能,发现相互抄袭占多.别人的总归是别人的,也同时为了练习技术,就自己写了一个基于paramiko免密认证多线程并发脚本.与大家共勉.使用上的问题的同学也可以联系我.刚...
    99+
    2023-01-31
    多线程 python paramiko
  • python paramiko 执行命令
    参考http://wangwei007.blog.51cto.com/blog/68019/1058726http://youzao.blog.51cto.com/3946111/1348903在node1上想对node2执行命令,标准的答...
    99+
    2023-01-31
    命令 python paramiko
  • python paramiko 问题总结
     Working with paramiko SSHClient is the main class provided by the paramkio module. It provides the basic interface you ...
    99+
    2023-01-31
    python paramiko
  • python paramiko模块简介
    python paramiko模块简介一:简介    paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。    由于使用的是python这样的能够跨平台运行的语言,所以所有py...
    99+
    2023-01-31
    模块 简介 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作