python配置免密登录服务器

paramiko是一个python的模块,用来 免密批量执行命令或者脚本;类似于sshpass,主要应用场景是在 python 运维脚本中。这里先介绍paramiko的安装方法,在这里踩坑有点久。

【安装paramiko模块】

环境介绍:centos 7.5

# 先安装python36
yum -y install epel-release
yum -y install python36

# 核心问题是怎么安装pip,这是一个坑点,建议只用 get-pip.py 文件来安装,不要用其他方法
# 我们这里是安装python3.6,必须要对应下载 get-pip.py 文件,用python3执行
python3 get-pip.py

get-pip36.py文件下载链接:

链接:https://pan.baidu.com/s/1myMlMVnkyUuV6083-h_c_Q

提取码:f1nb

【实例展示】

【实例1】

使用密码登录,这中方式适合于所有机器都是同一个密码的情况:

#! _*_ encoding:utf-8 _*_

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 修改下面这一行的参数,ip地址、端口、用户名、密码
ssh.connect(hostname="192.168.1.66", port=22, username='root', password='123123')
stdin, stdout, stderr = ssh.exec_command("mkdir /tmp/zhangwuji")
print(stdout.read().decode())
ssh.close()

【实例2】

使用秘钥登陆,适合于做了免密登陆的服务器。适合于批量操作服务器。

#! _*_ encoding:utf-8 _*_ 

import paramiko

ipfile = "/root/ip.txt"
pkey = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')

with open(ipfile, 'r') as file:
    for i in file.readlines():
        ip = i.strip()
        print(ip)
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(hostname=ip, port=22, username='root', pkey=pkey)
        stdin,stdout,stderr = ssh.exec_command("echo 'langyabang' > /tmp/test.txt")
        print(stdout.read().decode())
        ssh.close()

结果展示:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值