博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习笔记-(十三)堡垒机
阅读量:6659 次
发布时间:2019-06-25

本文共 2146 字,大约阅读时间需要 7 分钟。

1.课前准备:

本次学习相关知识;之前,需要安装Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作。

前提:

python3.5程序安装到默认路径下并已添加path(如非默认,可根据报错信息自行百度)

步骤:

1:管理员方式打开cmd,切换到python安装路径的Scripts目录下:

2:执行命令:

pip3.5.exe install paramiko

3.安装过程中可能会报错:

执行以下命令更新下pip,然后继续第一步安装就哦了

pip install --upgrade pip

4:验证安装是否成功:打开cmd,进入python模式,输入import paramiko;无报错则代表成功;

2.热身:

SSH客户端:

1)基于用户名密码连接:

import paramiko #导入paramiko模块#创建SSH对象ssh = paramiko.SSHClient()#允许链接不在know_hosts文件的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#连接服务器ssh.connect(hostname='192.168.1.1',port=22,username='cc',password='123123')#执行命令stdin,stdout,stderr = ssh.exec_command('df')#获取命令结果result = stdout.read()#关闭连接ssh.close()

2)基于公钥密钥连接:

准备工作:

1.linux下生成公钥密钥

该命令将在/root/.ssh目录下面产生一对密钥id_rsa和公钥id_rsa.pub。(若没有安装ssh,则需要执行yum install openssh-clients)

id_rsa.pub 公钥 ---改名为authorized_keys

ssh-keygen#执行后一路enter即可

2.将密钥copy到win下

代码:

import paramikoprivate_key = paramiko.RSAKey.from_private_key_file('id_rsa')  # 这里写密钥在win下的文件路径# 创建SSH对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 连接服务器ssh.connect(hostname='192.168.1.15', port=22, username='root', pkey=private_key)# 执行命令stdin, stdout, stderr = ssh.exec_command('df')# 获取命令结果result = stdout.read()#打印命令结果print(result.decode())# 关闭连接ssh.close()

STFP客户端:

用于连接远程服务器并执行上传下载

1)基于用户名密码上传下载:

import paramiko transport = paramiko.Transport(('hostname',22))transport.connect(username='cc',password='123123') sftp = paramiko.SFTPClient.from_transport(transport)# 将location.py 上传至服务器 /tmp/test.pysftp.put('/tmp/location.py', '/tmp/test.py')# 将remove_path 下载到本地 local_pathsftp.get('remove_path', 'local_path') transport.close()

2)基于公钥密钥下载:

前提步骤同上

import paramiko private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa') transport = paramiko.Transport(('hostname', 22))transport.connect(username='wupeiqi', pkey=private_key ) sftp = paramiko.SFTPClient.from_transport(transport)# 将location.py 上传至服务器 /tmp/test.pysftp.put('/tmp/location.py', '/tmp/test.py')# 将remove_path 下载到本地 local_pathsftp.get('remove_path', 'local_path') transport.close()

 

转载于:https://www.cnblogs.com/cocc/p/5889007.html

你可能感兴趣的文章
Apache - AH00451
查看>>
批处理
查看>>
vim使用技巧
查看>>
nagios+centreon监控构建
查看>>
oa源码开发过程1
查看>>
bootstrap-data-target触发模态弹出窗元素
查看>>
读Xamarin文档记录
查看>>
PHP 错误处理机制
查看>>
sql*plus 使用技巧
查看>>
3.第一个MyBatis程序_进化
查看>>
学生表 课程表 成绩表 教师表 50个常用sql语句
查看>>
算法分析中最常用的几种排序算法(插入排序、希尔排序、冒泡排序、选择排序、快速排序,归并排序)C 语言版...
查看>>
Redis 3.0 编译安装
查看>>
部署第一个域:Active Directory
查看>>
编程经验-优美的代码也是一种艺术
查看>>
获得ios屏幕上的像素
查看>>
windows下ACS服务器的认证(h3c)【路由器、交换机】
查看>>
linux监控
查看>>
企业发展最大的敌人---内耗
查看>>
oracle语句使用经验
查看>>