首页 > 系统相关 >Python Paramiko模块-exec_command() 和 invoke_shell() 两种操作方式

Python Paramiko模块-exec_command() 和 invoke_shell() 两种操作方式

时间:2024-02-19 19:34:09浏览次数:20  
标签:shell invoke exec ssh command channel paramiko row

前言

Paramiko 是 Python 语言的一个 SSH 客户端。可以远程连接Linux服务器,通过 python 对 Linux 进行操作,可以实现进行对远程服务器进行下载和上传文件操作。

exec_command() 操作

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(
    hostname='127.1.1.12',
    port=22,
    username='root',
    password='aa**********',
    timeout=5
)

while True:
    cmdline = input("command: ")
    stdin, stdout, stderr = ssh.exec_command(cmdline)
    for row in stdout.readlines():
        row = row.replace('\r', '').replace('\n', '').replace('\t', '')
        print(row)

invoke_shell() 操作

代码示例:

import paramiko

# 建立一个socket
trans = paramiko.Transport(('127.0.1.66', 22))
# 启动一个客户端
trans.start_client()

# 如果使用用户名和密码登录
trans.auth_password(username='root', password='aa********')
# 打开一个通道
channel = trans.open_session()
# 获取终端
channel.get_pty()
# 激活终端,这样就可以登录到终端了,就和我们用类似于xshell登录系统一样
channel.invoke_shell()
results = channel.recv(1024000)
print(f"输出1: {results.decode()}")

channel.send("ll\n")
while True:
    results2 = channel.recv(1024000)
    print(f"输出2: {results2.decode()}")

标签:shell,invoke,exec,ssh,command,channel,paramiko,row
From: https://www.cnblogs.com/yoyoketang/p/18021677

相关文章

  • **SiteServer CMS远程模板下载getshell漏洞导致的黑SEO利用分析**
    前言某日中午,收到上级下发的任务,涉及一代理商客户网站发现异常SQ内容,要求进行溯源分析并找出根本原因。0x01初步分析通过提供的链接(www.xxx.com.cn/2023j19tPLKn2/55151),确认涉及黑帽SEO活动,通过百度搜索进一步验证也证实了这一点。0x02日志分析黑客常常在植入菠菜或非......
  • 免费xshell和xftp下载使用
    背景:最近xshell老是跳出提示说要更新,于是最终没忍住,就更新了,下班后关了机,今天一点进去的时候,不能用了!网上搜了搜,有说提供xshell激活秘钥的,有提供百度网盘地址让我下载的,折腾一通下来,我的C盘不知道咋就红了,还时不时冒出来一些游戏的页面。忍住,忍住没去找师父,然后找到了师父之前......
  • 关于java代码Runtime.getRuntime().exec()执行shell脚本中的坑
    java操作shell脚本执行docker命令  Runtime.getRuntime().exec()是不能执行特殊符号如">"、"|"等必须通过"/bin/sh""-c"处理。另外java操作docker 不能分配  dockerexec-i(不要t).另外如果不确定脚本是否执行成功,可以通过waitFor返回的int结果,如果为0脚本执行......
  • linux shell 中双方引号和单方引号的区别
     通常更推荐使用双方引号。 001、双方引号可以避免变量的单词分割[root@pc1test1]#str1="aabb"##测试字符串[root@pc1test1]#if[[$str1=="aabb"]];thenecho"yes";fi##双边引号不用担心变量的单词分割yes[root@pc1test1]#if[$str1=......
  • 配置powershell
    参考视频:配置终端代理:$env:HTTP_PROXY="http://127.0.0.1:10809";$env:HTTPS_PROXY="https://127.0.0.1:10809"安装scoopiwr-usebget.scoop.sh|iex非管理员模式运行psscoop的默认安全策略使得它不能直接在管理员模式下安装;运行以下两个命令:Set-ExecutionPolicyRem......
  • CMU 15-445(Fall 2023) Project3 Query Execution个人笔记
    Task#1-AccessMethodExecutorsSeqScan算子实现逻辑使用exec_ctx属性获取对应的TableInfo调用MakeIterator方法,获取表的迭代器在Next方法中,每次利用迭代器获得一个满足条件的元组(检查元组是否被删除、元组是否满足filter)Insert算子实现逻辑在Next方法中调用child......
  • Failed to execute ‘requestFullscreen‘ on ‘Element‘
    来源:http://www.shanhubei.com/archives/13628.html浏览器无法自启动全屏模式报错信息:Failedtoexecute‘requestFullscreen’on‘Element’:APIcanonlybeinitiatedbyausergesture.翻译:无法在element上执行requestFullscreen方法,这个API只有用户主动行为才可以触发......
  • bat+powershell实现win10一键共享
    网卡Ethernet共享给网卡Ethernet2C:\tools\share_net.ps1#RegistertheHNetCfglibrary(once)#regsvr32hnetcfg.dll#CreateaNetSharingManagerobject$m=New-Object-ComObjectHNetCfg.HNetShare#Listconnections$m.EnumEveryConnection|%{$m.NetConnect......
  • 安卓 adb shell 使用strace
    https://stackoverflow.com/questions/34762544/strace-in-androidhttp://forum.xda-developers.com/showthread.php?t=2516002这个链接里边的下载链接改变内容了,可能域名过期了 https://source.android.com/docs/core/tests/debug/strace?hl=zh-cnmmma-j6external/strace......
  • ThreadPoolTaskExecutor以及通过注解实现异步任务
    ThreadPoolTaskExecutor是Spring框架的线程池,实现方式如下:1//声明一个name为asyncTaskExecutor的线程池bean到容器中2@Bean("asyncTaskExecutor")3publicExecutorgetAsyncExecutor(){4ThreadPoolTaskExecutorthreadPoolExecutor=newThreadPoolTaskExecuto......