Python处理SSH

操作SSH

应用场景

基于Python代码可以直接操作Linux服务器,或者安装任何SSH服务的服务器

  1. 利用Python完成远程应用系统部署
  2. 远程监控
  3. 文件传输
  4. Agentless:无代理模式(不需要在目标主机安装什么东西,就可以在目标主机上进行操作)
代码演示

执行命令

import paramiko
# 建立与ssh服务器的连接
transport = paramiko.Transport(('192.168.56.107',22))
transport.connect(username='root',password='root')
# 实例化一个ssh客户端,然后可以用于执行命令
ssh=paramiko.SSHClient()
ssh._transport=transport
# 执行命令,有三个返回值,分别是标准输入、标准输出、标准错误
stdin,stdout,stderr=ssh.exec_command('ip a')
# 也可以调用在linux中写好的批处理文件
# stdin,stdout,stderr=ssh.exec_command('sh /opt/learn/pingall.sh')
# 打印输出结果
print(stdout.read().decode())
# 关闭连接
transport.close()

文件上传

import paramiko
transport = paramiko.Transport(('192.168.56.107',22))
transport.connect(username='root',password='root')
# 建立sftp连接
sftp=paramiko.SFTPClient.from_transport(transport)
# 上传文件
sftp.put('test.txt','/opt/test.txt')

文件下载

import paramiko
transport=paramiko.Transport(('192.168.56.107',22))
transport.connect(username='root',password='root')
# 建立sftp连接
sftp=paramiko.SFTPClient.from_transport(transport)
# 下载文件
sftp.get('/opt/test.txt','./Baobo/test111.txt')

SSH通信协议是加密过的,所以安全性较高故SSH常见的攻击方法基本上只有暴力破解

若出现错误TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from this module in 48.0.0. “cipher”: algorithms.TripleDES,

亲测可以将paramiko修改成指定版本

pip uninstall paramiko
pip insrall paramiko==3.0.0
简单应用

检查apache的状态,不对则重启

# ...与上面执行命令代码相结合...
import requests
resp = requests.get('192.168.56.107:8080/mysite')
if resp.status_code>400:
    ssh.exec_command('/opt/apache-tomcat-8.0.47/bin/shutdown.sh')
    time.sleep(3)
    ssh.exec_command('/opt/apache-tomcat-8.0.47/bin/shutdown.sh')
    time.sleep(20)
resp = requests.get('...')

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹博Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值