首页域名资讯 正文

Python Paramiko模块安装和使用

2025-03-18 3 0条评论

1、简介

大家会发现,常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了。

使用paramiko可以很好的解决以上问题,比起前面的方法,它仅需要在本地上安装相应的软件(python以及PyCrypto),对远程服务器没有配置要求,对于连接多台服务器,进行复杂的连接操作特别有帮助。

2、安装

安装paramiko有两个先决条件,python和另外一个名为PyCrypto的模块。

通常安装标准的python模块,只需要在模块的根目录下运行:

1 2 python setup . py build python setup . py install

备注:安装前先检查是否安装gcc(yum -y install gcc)

2.1 PyCrypto安装

1 2 3 4 wget tar zxvf pycrypto 2.6.tar.gz cd pycrypto 2.6 / python setup . py build && python setup . py install

测试:

1 python >> import Crypto

(编译时报错:error: command ‘gcc’ failed with exit status 1;这是因为缺少python-dev的软件包,所yum -y install python-devel)

2.2 paramiko安装

1 2 3 4 5 wget http : //www.trustauth.cn/paramiko/download/paramiko-1.7.7.1.tar.gz tar xvzf paramiko 1.7.7.1.tar.gz cd paramiko 1.7.7.1 / python setup . py build && python setup . py install Crypto error : ‘module’ object has no attribute ‘HAVE_DECL_MPZ_POWM_SEC’

测试:

1 2 python >> import paramiko ( Crypto error : ‘module’ object has no attribute ‘HAVE_DECL_MPZ_POWM_SEC’

找到 /usr/lib/python2.7/site-packages/Crypto/Util/number.py

1 if _fastmath is not None and not _fastmath . HAVE_DECL_MPZ_POWM_SEC :

注释了

1 #if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:

3、使用

3.1 执行远程命令

1 2 3 4 5 6 7 8 9 #!/usr/bin/python import paramiko ssh = paramiko . SSHClient ( ) ssh . set_missing_host_key_policy ( paramiko . AutoAddPolicy ( ) ) ssh . connect ( “某IP地址” , 22 , “用户名” , “口令” ) stdin , stdout , stderr = ssh . exec_command ( “你的命令” ) print stdout . readlines ( ) ssh . close ( )

3.2 上传文件到远程

1 2 3 4 5 6 7 8 9 10 #!/usr/bin/python import paramiko t = paramiko . Transport ( ( “某IP地址” , 22 ) ) t . connect ( username = “用户名” , password = “口令” ) sftp = paramiko . SFTPClient . from_transport ( t ) remotepath = ‘/tmp/test.txt’ localpath = ‘/tmp/test.txt’ sftp . put ( localpath , remotepath ) t . close ( )

3.3 从远程下载文件

1 2 3 4 5 6 7 8 9 10 #!/usr/bin/python import paramiko t = paramiko . Transport ( ( “某IP地址” , 22 ) ) t . connect ( username = “用户名” , password = “口令” ) sftp = paramiko . SFTPClient . from_transport ( t ) remotepath = ‘/tmp/test.txt’ localpath = ‘/tmp/test.txt’ sftp . get ( remotepath , localpath ) t . close ( )

文章转载来自:trustauth.cn

文章版权及转载声明

本文作者:亿网 网址:https://edns.com/ask/post/163277.html 发布于 2025-03-18
文章转载或复制请以超链接形式并注明出处。