python连接ssh执行模块_Python3学习之路~9.1 paramiko模块:实现ssh执行命令以及传输文件...

本文介绍了如何使用Python的paramiko模块实现SSH客户端,通过Python脚本远程登录Linux服务器执行命令和传输文件。文章详细讲解了安装paramiko的过程,包括在Win7和CentOS7系统下的安装步骤,并提供了基于用户名密码和公钥密钥的SSH连接示例代码。
摘要由CSDN通过智能技术生成

我们一般使用linux的时候,都是在Windows上安装一个ssh客户端连接上去。那么从一台linux如何连接到另一条linux呢?使用ssh命令即可,因为每台linux机器自己都有一个ssh客户端。现在我们使用Python的paramiko模块可以实现ssh客户端,通过Python脚本远程登录一台机器并执行相关操作。

为什么要使用Python来实现ssh客户端呢?主要作用是用来作批量管理。如果让你使用ssh命令登录1台linux机器还好,但是如果让1000台机器同时执行一个命令怎么办呢?当然你可以使用shell脚本写一个for循环来实现,我们使用Python也可以实现。

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

首先安装paramiko模块

基本命令:pip install paramiko

C:\Users\Administrator>pip install paramiko #由于我PC上同时安装了Python2和Python3,所以会报错

Fatal errorin launcher: Unable to create process using '"'C:\Users\Administrator>python3 -m pip install paramiko #用这个命令安装就好啦

...

Successfully installed asn1crypto-0.24.0 bcrypt-3.1.6 cffi-1.12.2 cryptography-2.6.1 paramiko-2.4.2 pyasn1-0.4.5 pycparser-2.19 pynacl-1.3.0 six-1.12.0C:\Users\Administrator>python3 #验证是否安装成功

Python3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64bit (AMD64)] on win32

Type"help", "copyright", "credits" or "license" formore information.>>>import paramiko #不报错说明安装成功>>>PS:别看上面用命令安装paramiko这么简单,刚开始跟着网上博客离线安装各种报错,浪费了我整整1天的时间,哎,说多了都是泪啊。。。

Win7系统下安装paramiko实操

[root@hadoop ~]# cd /usr/local/python3/bin/[root@hadoop bin]# pip3 install paramiko #直接安装会报错,所以请按下面步骤安装

pip._vendor.requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.1.安装组件

[root@hadoop~]# install openssl openssl-devel python-dev pycrypto -y

[root@hadoop~]# yum install zlib-devel zlib #必须安装,不安装会报错

[root@hadoop~]# cd /usr/local/python3/[root@hadoop python3]# ./configure #安装zlib-devel需要对python3.5进行重新编译安装

[root@hadoop python3]# make&make install2.安装setuptools:

[root@hadoop python3]# cd bin

[root@hadoop bin]# pip3 install setuptools #貌似安装python3.6时已经顺带安装过了

Requirement already satisfied: setuptoolsin /usr/local/python3/lib/python3.6/site-packages3.安装paramiko

[root@hadoop bin]# pip3 install paramiko #安装成功未报错

Successfully installed asn1crypto-0.24.0 bcrypt-3.1.6 cffi-1.12.2 cryptography-2.6.1 paramiko-2.4.2 pyasn1-0.4.5 pycparser-2.19 pynacl-1.3.0 six-1.12.0[root@hadoop bin]# python3 #验证是否安装成功

Python3.6.1 (default, Sep 21 2018, 15:34:57)

[GCC4.8.5 20150623 (Red Hat 4.8.5-28)] on linux

Type"help", "copyright", "credits" or "license" formore information.>>>import paramiko #不报错说明安装成功>>>参考:https://www.cnblogs.com/chimeiwangliang/p/7193187.html

CentOS7系统下安装paramiko实操

SSHClient

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

基于用户名密码连接:

import paramiko

# 创建SSH对象

ssh = paramiko.SSHClient()

# 允许连接不在know_hosts文件中的主机,否则可能报错:paramiko.ssh_exception.SSHException: Server '192.168.43.140' not found in known_hosts

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接服务器

ssh.connect(hostname=b'192.168.43.140', port=22, username=b'root', password=b'123123')

# 执行命令

# stdin:标准输入(就是你输入的命令);stdout:标准输出(就是命令执行结果);stderr:标准错误(命令执行过程中如果出错了就把错误打到这里),stdout和stderr仅会输出一个

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

# 获取命令结果

result = stdout.read().decode() # 这个有问题,不显示错误,可以修改一下,先判断stdout有没有值,如果输出没有,就显示错误

print(result)

# 关闭连接

ssh.close()

#Author:Zheng Na

import paramiko

t

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值