python运维之paramiko

本文介绍了Python的paramiko模块,用于SSH2协议的加密和认证远程连接服务器。内容包括paramiko的安装,详细讲解了HOST Keys、connect方法、执行命令、交互式操作以及文件传输等关键功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

paramiko是使用Python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式远程连接服务器。

1. 安装

在安装paramiko前,首先要安装PyCrypto模块。安装脚本为:
git clone https://github.com/dlitz/pycrypto.git
cd pycrypto && sudo python setup.py install
cd ..
git clone https://github.com/paramiko/paramiko.git
cd paramiko && sudo python setup.py install
cd ..
sudo rm -rf pycrypto paramiko


2. 使用paramiko

paramiko API 中最为基本的类是“paramiko.SSHClient". 它提供了与服务器连接和文件传输的最基本的接口。一个最简单的例子:
import paramiko

ssh = paramiko.SSHClient()
ssh.connect('127.0.0.1', username = 'ubuntu', password='123')
它将创建一个新的SSHClient实例,然后调用“connect()”来连接本地的SSH服务,没有比这更简单的了不是吗?

HOST Keys

SSH认证另一种方法是采用密钥的方式。无论何时你使用ssh来连接一个远程的服务器,host key的信息将被自动存储在家目录下的".ssh/known_hosts"文件中。如果你通过ssh新连接一个host,将会看到以下信息:

The authenticity of host 'localhost (::1)' can't be
established.
RSA key fingerprint is 
22:fb:16:3c:24:7f:60:99:4f:f4:57:d6:d1:09:9e:28.
Are you sure you want to continue connecting 
(yes/no)? 

敲入“yes”,key的信息将被保存到“known_hosts”文件中。这些密钥很重要,因为它是与主机之间的信任机制。如果key被破坏或更改,那么客户端会拒绝连接并不会通知你,而paramiko也采用相同的规则。如果在“hnown_hosts”中没有保存相关的信息,SSHClient 默认行为是拒绝连接。如果是工作在系统反反复复安装的实验环境中时,这将变得无比的烦人。设置host key的规则调用的方法叫ssh client 实例的"set_missing_host_key_policy()",它设定了你所期望的方法来管理host key.如果你像我一样懒惰,你可以用"paramiko.AutoAddPolicy()"方法来自动接收未知的key:
import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('127.0.0.1', username = 'ubuntu', password='123')

connect方法

connect ( hostname 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 )
Pythonparamiko模块是一种用于实现自动化运维的工具,可以通过SSH协议连接到远程服务器,并执行命令、上传、下载文件等操作。paramikoPython中最常用和最成熟的SSH库之一。 通过paramiko,我们可以简化远程服务器的管理和配置工作。使用paramiko,可以实现自动化的服务器批量部署、配置文件更新、软件升级等任务。它提供了一组简洁的API,使得我们可以通过Python脚本来实现各种操作。 paramiko的主要功能包括远程命令执行、sftp操作、文件传输等。我们可以使用paramiko连接到远程服务器,执行命令并获取输出。同时,我们还可以使用sftp进行文件的上传和下载操作,方便我们进行文件的管理和传输。 paramiko的优点包括易用性和灵活性。它提供了一个面向对象的API接口,使得我们可以轻松地进行远程管理。同时,paramiko还支持并发操作,可以同时连接多个服务器进行批量操作,提高效率。 另外,paramiko还具有安全性和稳定性。它使用SSH协议进行连接和操作,能够进行加密通信,确保数据的安全性。同时,paramiko经过了广泛的测试和使用,具有较高的稳定性,可以满足日常运维工作的需求。 总之,paramiko是一种功能强大、易于使用的Python工具,可以实现自动化运维任务,如远程命令执行、文件传输等。它的出色表现使得它成为了自动化运维领域的首选工具之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值