python之 paramiko模块 连接服务器

摘要:
Paramiko是一个基于SSH的模块,用于连接到远程服务器并执行相关操作。此模块可用于在远程服务器上执行命令或文件操作。

paramiko是一个基于SSH用于连接远程服务器并执行相关操作(SSHClient和SFTPClinet,即一个是远程连接,一个是上传下载服务),使用该模块可以对远程服务器进行命令或文件操作。

下载安装

pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto
pip3 install pycrypto
pip3 install paramiko

1.账号密码连接

import logging
import sys

import paramiko


def get_data():
    list_ = list()
    try:
        ssh_client = paramiko.SSHClient()
        ssh_client.load_system_host_keys()
        ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh_client.connect("192.168.xx.xx", 22, 'root', 'admin')
        # 在command命令最后加上 get_pty=True,执行多条命令 的话用;隔开,另外所有命令都在一个大的单引号范围内引用
        std_in, std_out, std_err = ssh_client.exec_command(
            'oc login https://api.ocp4.gzky.com:6443 --username=admin --password=redhat &> /dev/null && '
            'tk=$(oc sa get-token prometheus-k8s -n openshift-monitoring) && '
            'curl -H "Authorization: Bearer $tk" https://192.168.xx.xx:xxxx/metrics -k',
            get_pty=True)
        for line in std_out:
            list_.append(line.strip("
"))
    except Exception as e:
        logging.error('class path: %s;function name: %s;error message:%s' %
                      (__name__, sys._getframe().f_code.co_name, e.message), exc_info=True)
    return list_

  

2.公钥秘钥连接

import paramiko

private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='c1.salt.com', port=22, username='wupeiqi', key=private_key)
# 执行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read()
# 关闭连接
ssh.close()

 

免责声明:文章转载自《python之 paramiko模块 连接服务器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇联想Y450在Ubuntu下调节屏幕亮度关于盐值加密下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

pycharm重置配置

问题描述:   python右键编译出现异常,  每次右键编译都是Module name: 每次需要手工修改为Script path,手贱点了小箭头看看了,就出现异常了! 问题解决:   删除python的个性配置,注意删除请考虑清除,不得已才可以这样操作。pycharm的license需要再次认证及修改的配置对丢失了(可以提前把配置导出来)...

Python爬虫之selenium高级功能

Python爬虫之selenium高级功能 原文地址 表单操作 元素拖拽 页面切换 弹窗处理 表单操作 表单里面会有文本框、密码框、下拉框、登陆框等。 这些涉及与页面的交互,比如输入、删除、点击等。 前提是找到页面中的元素。 例如下面有一个表单输入框: <input type="text" name="passwd" id="passwd-id" /...

Python 100行代码实现2048小游戏

首先我们来看看我们效果图:  这是最简版后期可以去优化,后端自己写一个可视化页面,或者配上一个前端,可以使我们的程序变得更绚丽。 下面我们开始我们的代码 一、构造一个把0元素移至末尾的函数 [2, 4, 0, 2] --> [2, 4, 2, 0] 1 def zero_end(): 2 """ 3 0元素移至到末尾 4...

docker部署sftp

一. 按照我博客中搭建sftp的方法做一个docker镜像 这种方法可用,但不是最好的,待改进。可参照另一篇博客:设置多用户不同权限的sftp服务器搭建 1. dockerfile文件如下,当前目录假定为sftp_docker   FROM ubuntu:14.04 ADD ./source.list /etc/apt/sources.list #...

【转】Git详解之四 服务器上的Git

服务器上的 Git 到目前为止,你应该已经学会了使用 Git 来完成日常工作。然而,如果想与他人合作,还需要一个远程的 Git 仓库。尽管技术上可以从个人的仓库里推送和拉取修改内容,但我们不鼓励这样做,因为一不留心就很容易弄混其他人的进度。另外,你也一定希望合作者们即使在 自己不开机的时候也能从仓库获取数据 — 拥有一个更稳定的公共仓库十分有用。因此,更好...

Python 关于列表字典的键值修改

list (修改列表的索引值) 循环一个列表时,最好不要对原列表有改变大小的操作,这样会影响你的最终结果。 #使用负索引进行修改列表 print('First') lis = [11, 22, 33, 44, 55] print(lis) for num in range(len(lis)-1,-1,-1): if num % 2 != 0:...