专栏首页python3Python paramiko模块的安装

Python paramiko模块的安装

paramiko是Python语言编写的遵循SSH2协议,支持加密和认证方式,连接远程服务器执行命令或者上传下载文件。

一、安装paramiko

pip3 install paramiko

二、使用用户名密码方式远程执行命令

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 自动接受远程服务器host key
ssh.connect('127.0.0.1', 22, 'username', 'password')  # 远程主机IP、端口、用户名、密码
stdin, stdout, stderr = ssh.exec_command('df -h')  # 远程服务器要执行的命令
for line in stdout:
	print(line)
ssh.close()  # 关闭ssh连接

三、使用用户名密码方式上传或下载文件

import paramiko
t = paramiko.Transport('127.0.0.1', 22)
t.connect(username='username', password='password')
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put('local_file', 'remote_folder')
t.close()
import paramiko
t = paramiko.Transport('127.0.0.1', 22)
t.connect(username='username', password='password')
sftp = paramiko.SFTPClient.from_transport(t)
sftp.get('remote_file', 'local_folder')
t.close()

四、使用ssh key方式远程执行命令(前提远程主机已经接受了你的公钥)

import paramiko

private_key_path = '/home/xxx/.ssh/id_rsa'
key = paramiko.RSAKey.from_private_key_file(private_key_path)

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('127.0.0.1', 22, username='username', pkey=key)
stdin, stdout, stderr = ssh.exec_command('df')
print(stdout.read())
ssh.close()

五、使用scp方式远程执行命令

import paramiko

scp = paramiko.Transport(('127.0.0.1', 22))
scp.connect(username='username', password='password')
channel = scp.open_session()
channel.exec_command('touch hello/test.txt')
channel.close()
scp.close()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python paramiko 问题总结

    SSHClient is the main class provided by the paramkio module. It provides the bas...

    py3study
  • python paramiko

    近段时间用Python写一个小东西,每次修改代码后要手工上传到服务器,觉得很麻烦,虽然有WinSCP,找了一下资料,发现paramiko可以实现自动上传文件的功...

    py3study
  • python下paramiko模块ssh

        python下有个paramiko模块,这个模块可以实现ssh登录linux服务器,下面贴出代码,注意,我在centos5.6下,python2.6.5...

    py3study
  • python paramiko 问题总结

    SSHClient is the main class provided by the paramkio module. It provides the bas...

    py3study
  • C+实现神经网络之六—实战手写数字识别

    之前的五篇博客讲述的内容应该覆盖了如何编写神经网络的大部分内容,在经过之前的一系列努力之后,终于可以开始实战了。试试写出来的神经网络怎么样吧。 数据准备 有人说...

    企鹅号小编
  • 由于struts配置文件没有定义头文件引起的问题

    在使用struts中,一定要配置struts-config.xml文件,我所采用的web容器是resin,采用struts结构,当系统搭建好了之后,启动res...

    源哥
  • Android6.0 org.apache.http.util.EncodingUtils等相关类被移除

    6.0sdk中移除了org.apache.http.util.EncodingUtils等相关类,可以在gradle作如下配置,引入相关类

    夏洛克的猫
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅

    2020-03-03 08:26

    walterlv
  • Day 2-Java-imooc-9-继承

    课程地址:http://www.imooc.com/learn/124 总结图片来自 http://www.imooc.com/article/10715 ?...

    杨熹
  • Spark Streaming + Spark SQL 实现配置化ETL流程

    通常而言,你可能会因为要走完上面的流程而构建了一个很大的程序,比如一个main方法里上百行代码,虽然在开发小功能上足够便利,但是复用度更方面是不够的,而且不利于...

    用户2936994

扫码关注云+社区

领取腾讯云代金券