python学习日记(50)--paramiko


本文摘自php中文网,作者PHP中文网,侵删。

1

2

3

4

5

6

7

8

9

10

11

12

13

python通过paramiko实现,ssh功能

import paramiko

ssh =paramiko.SSHClient()#创建一个SSH连接对象

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#允许连接不在KNOV_HOSTs文件中的主机 自动添加

ssh.connect(hostname='192.168.11.51',port=22,username='yjj',password='yjj')#连接,主机 端口  用户名 密码

stdin,stdout,stderr=ssh.exec_command('df')#.exec_command 为执行命令,返回结果  ,标准输入,标准输出,标准错误,错误与输出只会返回其一

result=stdout.read()#获取结果

#result2=stdin.read()#获取结果

#result3=stderr.read()#获取结果

#print(result,result2,result3)

result=result.decode()

print(result)

ssh.close()#关闭连接

ftp功能

1

2

3

4

5

6

7

import paramiko

#创建一个传输通道对象

transport=paramiko.Transport(('192.168.11.50',22))#传输模块  Transport  服务器地址 端口

transport.connect(username='root',password='yjj')#用户名,,密码

sftp=paramiko.SFTPClient.from_transport(transport)#调用传输方法

sftp.put('test2','/home/yjj/test2')#上传文件 ,本地路径文件  ,服务器的路径文件

sftp.get('/home/yjj/test1','test1')#下载文件 ,服务器的路径文件 ,本地路径文件

为了安全起见,不使用明文密码,采用 RSA 非对称密钥自动登陆

在linux下:生成密钥

1158453-20170621164351679-524254105.png

传输到要登陆的服务器端:

1158453-20170621164443273-477435974.png

传输成功就可以成功登陆服务器上对应的用户

如果是windows登陆linux

可以将私钥复制到windows下

通过paramiko.RSAKey指定私钥进行访问

ssh功能:

1

2

3

4

5

6

7

8

9

10

import paramiko

priv_key=paramiko.RSAKey.from_private_key_file('id_rsa')#指定私钥文件

ssh=paramiko.SSHClient()#生成ssh对象

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#允许连接不在KNOV_HOSTs文件中的主机 自动添加

ssh.connect(hostname='192.168.11.50',port=22,username='root',pkey=priv_key)#连接,主机 端口  用户名 私钥

stdin,stdout,stderr=ssh.exec_command('df')#.exec_command 为执行命令,返回结果  ,标准输入,标准输出,标准错误,错误与输出只会返回其一

result=stdout.read()#获取结果

result=result.decode()

print(result)

ssh.close()#关闭连接

ftp功能:

1

2

3

4

5

6

7

8

9

10

11

import paramiko

priv_key=paramiko.RSAKey.from_private_key_file('id_rsa')#指定私钥文件

#创建一个传输通道对象

transport=paramiko.Transport(('192.168.11.50',22))#传输模块  Transport  服务器地址 端口

transport.connect(username='root',pkey=priv_key)#用户名,,私钥

sftp=paramiko.SFTPClient.from_transport(transport)#调用传输方法

sftp.put('test2','/home/yjj/test2-2')#上传文件 ,本地路径文件  ,服务器的路径文件

sftp.get('/home/yjj/test1','test1-2')#下载文件 ,服务器的路径文件 ,本地路径文件

with open('test1-2','r',encoding='utf-8') as f:

    s=f.readlines()

    print(s)

以上就是python学习日记(50)--paramiko的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

一起看看Python常用字符串及其操作

Python day05 Python 环境变量和import模块导入

Python的除法运算符是什么意思

Python中文件的读取和写入操作

Python如何实现猜数字游戏

pytho 中闭包与装饰器详解

Python怎么读音

Python线程下queue(队列)模块的用法(附实例)

Python语言能做什么工作

深入理解Python中多重继承

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...