paramiko交互

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

python的paramiko库一些常用操作


一、paramiko交互

通过window下python里的paramiko连接ubuntu终端

二、使用步骤

1.引入库

代码如下(示例):

import paramiko

2.操作

第一种方法:

代码如下(示例):

    # 创建一个SSH客户端对象
    ssh = paramiko.SSHClient()
    # 设置访问策略(设置丢失主机key)时的策略为自动添加
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 与远程主机进行连接
    ssh.connect("ip地址",22,"用户名","密码")
    # 发送终端指令,这里的指令和在ubuntu终端指令一致
    cmd = 'ls'
    # 接收到返回值(会接收到三种返回值分别是:标准输入、标准输出、错误输出)
    stdin,stdout,sdterr = ssh.exec_command(cmd)
    out = stdout.read()
    print(out)

返回的stdin(标准输入)用法一般是用来和终端交互,但是在项目实践过程中,操作终端进入超管权限,需要输入管理员密码,利用stdin.write("123456"+'\n')无法实现

第二种方法:
    s=paramiko.SSHClient()
    s.load_system_host_keys()
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    s.connect("ip",22,"username","pwd")
    if username != 'root':
        ssh = s.invoke_shell()
        time.sleep(0.1)
        ssh.send("sudo su \n")
        buff = ''
        # 下面的ap是我终端的username
        while not buff.endswith('password for ap: '):
            resp = ssh.recv(9999)
            buff +=resp.decode('gbk')
        # 123456是ap管理员的密码
        ssh.send("123456\n")
        ssh.send("whoami"+'\n')
        # 即可登录到超管权限,输出"root"

总结

使用以上两种方法都可以使用python来和虚拟机终端交互,若终端是Centos系统,使用第一种方法,username传入root,即可直接进入超管权限,但是Ubuntu系统不可以,需要使用第二种方法使用send()来输入超管密码登录到超管权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值