使用python的pexpect模块,实现远程免密登录的示例

说明

当我们需要用脚本实现,远程登录或者远程操作的时候,都要去解决如何自动输入密码的问题,一般来说有3种实现方式:

1).配置公钥私钥

2).使用shell下的命令,expect

3).使用python的pexpect模块

下面介绍的代码,是使用python的pexpect模块实现的:

代码

import os
import sys
import pexpect
import datetime

#获取昨天的日期
date_yes = (datetime.date.today()-datetime.timedelta(days=1)).strftime('%Y%m%d')
print date_yes
#远程拷贝名利
cmd="scp /home/lsh/xxx/huike/data/" + date_yes + " data@x.x.x.x:/home/inf/xxx/huike/data/" + date_yes
print cmd
#发送命令,开始执行
child = pexpect.spawn(cmd)
#匹配需要输入密码的状态
child.expect('.ssword:')
#向系统发送密码
child.sendline('123456789')
#结束子进程,不加的话,可能会报错
child.expect(pexpect.EOF)

以上这篇使用python的pexpect模块,实现远程免密登录的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python安装使用命令行交互模块pexpect的基础教程

    一.安装 1.安装easy_install工具 wget http://peak.telecommunity.com/dist/ez_setup.py python ez_setup.py 安装easy_install工具(这个脚本会自动去官网搜索下载并安装) python ez_setup.py -U setuptools 升级easy_install工具 2.安装pexpect easy_install Pexpect 测试一下: [root@OMS python]# python Pyth

  • python pexpect ssh 远程登录服务器的方法

    使用了python中的pexpect模块,在测试代码之前,可输入python进入交互界面,输入help('pexpect'),查询是否本地含有pexpect模块. 如果没有,linux系统输入 easy_install pexpect便可自动安装. 测试代码,连接127.0.0.1 下面是我手动连接127.0.0.1, 发现只有在首次使用ssh连接127.0.0.1时,需要输入yes or no ,而后再次使用ssh ,则不需要再次输入yes 直接输入密码即可. 后续测试代码是二次链接,无需查询

  • Python Pexpect库的简单使用方法

    简介 最近需要远程操作一个服务器并执行该服务器上的一个python脚本,查到可以使用Pexpect这个库.记录一下. 什么是Pexpect?Pexpect能够产生子应用程序,并控制他们,并能够通过期望模式对子应用的输出做出反应.Pexpect允许你的脚本产生子应用.控制他们像一个人类在输入命令一样. Pexpect使用在自动交互的应用,例如SSH.SFTP.PASSWD.TELNET.它可以被应用在使用自动设置脚本为不同的服务器自动地重复的安装软件包.也可以被应用在自动的软件测试. Pexpec

  • python Pexpect 实现输密码 scp 拷贝的方法

    在服务器A上的程序用到服务器B上的文件data,并且需要定期更新文件. 但是直接在bash文件中使用 scp -P 1000 192.168.199.10:/temp/data /temp 由于权限限制,不能免ssh密码拷贝,会要求输入B机器的密码.本想直接在bash文件中使用Pexpect 来实现自动输入密码,并scp拷贝文件,但是权限的限制导致不能安装使用Pexpect . 最后考虑使用python实现. 环境: python2.7 centos from pexpect import *

  • 对Python Pexpect 模块的使用说明详解

    背景介绍 Expect 程序主要用于人机对话的模拟,就是那种系统提问,人来回答 yes/no ,或者账号登录输入用户名和密码等等的情况.因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现.最初的第一个 Expect 是由 TCL 语言实现的,所以后来的 Expect 都大致参考了最初的用法和流程,整体来说大致的流程包括: 运行程序 程序要求人的判断和输入 Expect 通过关键字匹配 根据关键字向程序发送符合的字符串 TCL 语言实现的 Expect 功能非常强大,我曾经用它实现了防火墙

  • python之pexpect实现自动交互的例子

    Pexpect 是 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块. Pexpect 的使用范围很广,可以用来实现与 ssh.ftp .telnet 等程序的自动交互:可以用来自动复制软件安装包并在不同机器自动安装:还可以用来实现软件测试中与命令行交互的自动化. 整体来说大致的流程包括: 运行程序 程序要求人的判断和输入 Expect 通过关键字匹配 根据关键字向程序发送符合的字符 基本使用流

  • 使用python的pexpect模块,实现远程免密登录的示例

    说明 当我们需要用脚本实现,远程登录或者远程操作的时候,都要去解决如何自动输入密码的问题,一般来说有3种实现方式: 1).配置公钥私钥 2).使用shell下的命令,expect 3).使用python的pexpect模块 下面介绍的代码,是使用python的pexpect模块实现的: 代码 import os import sys import pexpect import datetime #获取昨天的日期 date_yes = (datetime.date.today()-datetime

  • linux下配置远程免密登录问题

    linux下各种集群搭建往往需要配置远程免密登录,本文主要描述了CentOs6.3系统下配置免密登录的详细过程. ssh远程登录,两种身份验证: 1.用户名+密码 密钥验证 机器1生成密钥对并将公钥发给机器2,机器2将公钥保存. 机器1要登录机器2时,机器2生成随机字符串并用机器1的公钥加密后,发给机器1. 机器1用私钥将其解密后发回给机器2,验证成功后登录 1.用户名+密码 如上图所示,机器1要登录到机器2 ssh 机器2的ip(默认使用root用户登录,也可指定,如:ssh a@192.16

  • Python3+selenium实现cookie免密登录的示例代码

    进过两天的研究终于实现了cookie的免密登录,其实就是session.特别开心,因为在Python爬虫群里问那些大佬,可是他们的回答令我寒心,自己琢磨!!! 靠谁比如靠自己,为此我总结下经验,以免入门的小白再次踩这样的吭.其实网上很多博客写的都比较不详细甚 首先问题自己思考,不懂得去群里问问,然后最重要的要理解事物的本质,只有理解后才能运用它:最后在百度一下把所有相关的博客都点开,一条一条的看一遍总结下规律,比较喽的就舍弃,这样基本上都能得到启发作用.比如selenium的本质就是操作浏览器的

  • Win10下配置VScode远程开发ssh-remote(免密登录)

    目录 问题背景: 环境准备: 配置步骤: 1.在本地配置服务器的免密登录 2.VScode上的配置 问题背景: 在开发或者做实验的过程中,我们经常会用到远程服务器或者Github的项目,而我服务器上的项目只能在Jupyter Notebook上编写(或许可以在其他IDE上写,但我不知道).而我们喜欢用的IDE比如Pycharm.轻量级的VScode,如何在本地的IDE上使用服务器的项目且快速.方便地写代码呢?这就是今天要详细介绍的VScode配置免密ssh+remote,一旦连接成功,我们就可以

  • vscode配置远程开发与免密登录的技巧

    1.首先在本机安装ssh 在cmd输入ssh,出现下面信息代表安装成功 2.vscode安装 Remote - SSH 插件 3.连接远程主机 vscode点击左下角绿色的按钮 选择Remote-SSH: Connect to Host- -> +Add New SSH Host- 按照格式输入即可,@前面的是用户名,后面是主机的IP 输入完,会弹出一个config的文件,它已经在本地的C:\Users\David.ssh下面创建了一个配置文件 第一个host是本地窗口的名字,第二个是主机IP地

  • VSCode远程SSH免密登录配置实现

    最近更新了VS Code之后,发现Remote-ssh拓展里的端口转发功能没了,很伤心,在探索的同时,顺手配置了一下VS Code ssh免密登录,以省去每次连接远程文件夹时输入两次密码的烦恼. 网上教程很多,但是很多没有给出细节,对于新手不友好,本文旨在通俗地介绍配置方法. 关键词:VS Code:vscode:ssh:远程开发 本次教程建立在VS Code+Remote-SSH插件开发环境.本地环境是Windows,远程环境是Linux的普通用户,非root. 第一步:本地 打开C:\Use

  • Python selenium+cookie实现免密登陆的示例代码

    目录 获取cookies: 携带cookies实现免密登陆: 今天爬取airbnb的租房数据时,遇到了登陆问题.自己动手解决了一下. 我们知道,http是无状态的,那么网页如何实现用户登陆注册功能呢?Session和Cookie就是为了满足这种需求出现的技术. 首先介绍一下Session和Cookie的概念. 在Web中Session对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去.

  • vscode远程免密登入Linux服务器的配置方法

    目录 一.Windows端操作 1. 生成私钥和公钥 2. 安装remote SSH插件 3. 配置config 二.Linux服务端操作 1. 将公钥文件内容追加到authorized_keys文件中 2. 修改权限 一.Windows端操作 1. 生成私钥和公钥 cmd终端输入: ssh-keygen -t rsa -b 4096 一直回车 2. 安装remote SSH插件 3. 配置config 打开vscode远程管理器进行免密登入配置,如下图例操作: 打开Configure 进入到公

  • python+selenium 实现扫码免密登录示例代码

    目录 一.需求描述 二.首先扫码登录获取cookies保存到本地未后面免密登录做准备 三.初始化浏览器 四.获取本地保存的cookies实现登录 一.需求描述 web 自动化测试/python爬虫往往会遇到扫码登录的情况,不是所有的网站都支持用户密码登录,遇到这种扫码登录的情况会阻碍我们自动化测试/爬虫的进行,所有为了可以顺畅的进行我们的需求,在进行自动化或者爬虫前我们首先要解决扫码登录的问题,下面讲解如何实现扫码免密登录. 二.首先扫码登录获取cookies保存到本地未后面免密登录做准备 具体

  • Linux 配置SSH免密登录 “ssh-keygen”的基本用法

    1 什么是SSH 引用百度百科的说明: SSH 为 Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定:它是建立在应用层基础上的安全协议. SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题. SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台. 为了在不同平台/网络主机之间的通信安全, 很多时候我们都要通过ssh进行认证. ssh认证方式主要有

随机推荐