`
斌强-朱
  • 浏览: 51374 次
社区版块
存档分类
最新评论

Python pexpec 解决scp ssh

 
阅读更多


#!/usr/bin/python2.7
import pexpect
import os, getpass


def ssh_command(user, host, password, command):
	ssh_newkey = 'Are you sure you want to continue connecting'
	child = pexpect.spawn('ssh -l %s %s %s' %(user, host, command))
	i = child.expect([pexpect.TIMEOUT, ssh_newkey, 'password: '])

	if i == 0: #timeout
		print child.before
		print "Error time out"
		print child.after
		return None
	if i ==1 :
		child.sendline('yes')
		child.expect('password: ')
		i = child.expect([pexpect.TIMEOUT, 'password: '])
		if i == 0:
			print child.before
			print 'time out ERROR'
			print child.after
			return None

	child.sendline(password)
	return child


def scp2(ip, user, passwd, dst_path, filename):
    if os.path.isdir(filename):
        cmdline = 'scp -r %s %s@%s:%s' % (filename, user, ip, dst_path)
    else:
        cmdline = 'scp  %s %s@%s:%s' % (filename, user, ip, dst_path)
    try:	
	child = pexpect.spawn(cmdline)
	child.expect('password:')
	child.sendline(passwd)
	child.expect(pexpect.EOF)
	#child.interact()
	#child.read()
	#child.expect('$')
	print "uploading"
    except:
	print "upload faild!"


def main1():
	host = raw_input('Hostname:')
	user = raw_input('User:')
	password = getpass.getpass()
	command = raw_input('Command:')
	child = ssh_command(user, host, password, command)
	child.expect(pexpect.EOF)
	print child.before

def main():
	pass

if __name__ == "__main__":
	pass

		


分享到:
评论

相关推荐

    python执行scp命令拷贝文件及文件夹到远程主机的目录方法

    Python执行SCP命令是一种在编程中实现自动化文件传输到远程服务器的常见方法,特别是在需要脚本化或批量处理任务时。SCP(Secure Copy)是基于SSH协议的安全文件传输工具,它允许用户通过加密连接将文件从本地复制到...

    python 实现ssh的执行远端命令和scp的不同机器文件传输功能

    用python 实现ssh的执行远端命令和scp的不同机器文件传输功能。代码简练易懂。

    android上工具 scp ssh sshpass tcpdump

    android上工具 scp ssh sshpass tcpdump

    Python库 | scp-0.13.2.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:scp-0.13.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    使用ssh、scp不需要密码

    为了解决这个问题,文章介绍了一种使用 ssh 和 scp 不需要密码的方法。 密钥对的生成 密钥对是公钥和私钥的组合,用于身份验证和加密传输。生成密钥对可以使用 ssh-keygen 命令,例如: ``` [user1@rh user1]$ ssh...

    ssh-subprocess:Python模块可通过SSH提供类似于子进程的命令执行

    ssh子进程 ssh-subprocess是一个小的Python模块,提供进程的API,用于通过SSH远程执行命令。 该模块依赖于OpenSSH的SSH功能,并且需要非交互式(例如,公钥)身份验证。 该模块还支持SCP文件传输,以上传和下载文件...

    C#版SSH、SCP,可作为客户端连结LINUX源码

    标题中的"C#版SSH、SCP,可作为客户端连结LINUX源码"表明这是一个使用C#编程语言实现的SSH(Secure Shell)和SCP(Secure Copy)客户端库,用于连接Linux服务器。SSH是一种网络协议,用于安全地远程登录到服务器,...

    在两台服务器之间建立信任关系解决scp,ssh等不用输入密码等问题.files.rar

    在IT领域,尤其是在系统管理与运维中,经常需要在多台服务器之间进行文件传输或远程登录操作,如使用scp(安全复制)和ssh(安全外壳协议)。为了提高效率并确保安全性,建立两台服务器之间的信任关系是至关重要的。...

    通过shell脚本执行scp和ssh命令

    通过shell脚本执行scp和ssh命令

    SSH-SCP使用方法

    ### SSH-SCP使用方法详解 #### 一、概述 SSH (Secure Shell) 是一种网络协议,用于计算机之间的安全登录及数据传输。SCP (Secure Copy Protocol) 是基于SSH协议的一个应用,用于安全地在不同主机之间复制文件。SCP...

    Linux下SSH及SCP命令简单使用

    SCP(Secure Copy Protocol)是一种基于SSH协议的命令行工具,用于在本地和远程主机之间安全地传输文件。 Linux下SSH命令的基本使用方法包括远程连接到一台支持SSH服务的远程主机。远程主机必须开启SSH服务,并且...

    IronPython应用框架AutoPyTest(WinAPI/WatiN/SshScp/Dll插件反射等)

    (b) 自动化测试、自动任务均可以通过python脚本实现,工具集成解析器和调用执行,封装应用包括:linux ssh连接和scp,WinAPI、Web测试等。 (c) 可以不断扩展添加python或.net开源dll,在python脚本中调用。 (3)...

    ssh,scp 连接远程ssh非22端口的服务器方法

    ### SSH与SCP连接远程非22端口的服务器方法 #### 一、SSH与SCP简介 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。通过SSH协议可以实现远程登录,远程命令执行等,其安全性高,是远程管理Linux...

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

    scp -P 1000 192.168.199.10:/temp/data /temp 由于权限限制,不能免ssh密码拷贝,会要求输入B机器的密码。本想直接在bash文件中使用Pexpect 来实现自动输入密码,并scp拷贝文件,但是权限的限制导致不能安装使用...

    Python调用scp向服务器上传文件示例

    最近做的项目中有一个小功能:在python中调用scp命令 使用ssh登录,然后将指定目录中的图片上传到服务器指定目录 网上搜了很多方法都没用,最后终于碰到一个可以成功上传的,特此记录 import paramiko # 用于调用...

    IronPython应用框架AuoPyTest(WinAPI/WatiN/SshScp/Dll插件反射等)

    (b) 自动化测试、自动任务均可以通过python脚本实现,工具集成解析器和调用执行,封装应用包括:linux ssh连接和scp,WinAPI、Web测试等。 (c) 可以不断扩展添加python或.net开源dll,在python脚本中调用。 (3)...

    Python库 | PyUpdater-SCP-Plugin-3.0.2.tar.gz

    《PyUpdater-SCP-Plugin-3.0.2:Python应用程序自动更新的解决方案》 PyUpdater-SCP-Plugin-3.0.2是Python开发的一个重要工具,它为Python应用程序提供了一个强大的自动化更新机制。这个库是PyUpdater框架的一个...

    IronPython应用框架(整合WinAPI/WatiN/SshScp/Dock/dll插件反射等)

    Scripts目录下含多个应用例子,窗体测试(WinAPI)、Web测试(WatiN)、WebAPI测试、LinuxSSH和SCP等。 3)命令行调用支持: IronPythonTest.exe -log logPath ;执行命令后输出日志全路径,默认Log/ -py filePath ;...

    SSH中SCP命令的使用

    ### SSH中的SCP命令详解与应用 #### 一、SCP命令简介 **SCP**(Secure Copy Protocol)是一种基于**SSH**(Secure Shell)协议的安全文件传输工具。与传统的`cp`命令不同,`scp`不仅可以实现在同一台机器内部的...

    Renci.SshNet.dll及其文档和实现SSH、SCP、FTP等操作的小例子

    Renci.SshNet是一个.NET库,它为开发者提供了一种方便的方式来实现Secure Shell (SSH) 协议,包括Secure Copy (SCP) 和File Transfer Protocol (FTP) 的功能。这个库主要用于安全地远程连接到服务器,执行命令,传输...

Global site tag (gtag.js) - Google Analytics