#!/usr/bin/env python
#coding=utf-8 import paramiko, getpass,sys,traceback class ssh_utils():
def login_by_passwd(self, ip, port, username, passwd):
self.ip = ip
self.port = port
self.username = username
self.passwd = passwd
self.pkey = None def login_by_key(self, username, key_path, passwd):
try:
self.pkey=paramiko.RSAKey.from_private_key_file(key_path)
except paramiko.PasswordRequiredException:
if not passwd:
passwd = getpass.getpass('RSA key password: ')
self.pkey = paramiko.RSAKey.from_private_key_file(key_path, passwd) def ssh(self,shell):
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
if self.pkey:
ssh.connect(self.ip, self.port, self.username, compress = True, pkey= self.pkey)
else:
if not self.passwd:
self.passwd = getpass.getpass('input password: ')
ssh.connect(self.ip,self.port,self.username, self.passwd)
stdin, stdout, stderr = ssh.exec_command(shell)
res = stdout.readlines()
ssh.close()
return res
except:
type, value, tb = sys.exc_info()
return traceback.format_exception(type, value, tb) def scp(self,localpath,remotepath):
try:
t = paramiko.Transport((self.ip,self.port))
if self.pkey:
t.connect(self.ip, self.port, self.username, pkey= self.pkey)
else:
if not self.passwd:
self.passwd = getpass.getpass('input password: ')
t.connect(username = self.username, password = self.passwd)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put(localpath,remotepath)
t.close()
return "SCP OK"
except:
type, value, tb = sys.exc_info()
return traceback.format_exception(type, value, tb) if __name__ == '__main__':
#使用例子
myssh = ssh_utils()
myssh.login_by_passwd("23.83.25.18",222,"root","xiaoming.n5")
ret = myssh.scp('/etc/fstab', '/tmp/')
myssh.ssh("cd /tmp/ && tar -zcf fstab.tgz fstab")

使用paramiko远程登录并执行命令脚本的更多相关文章

  1. [转]python3之paramiko模块(基于ssh连接进行远程登录服务器执行命令和上传下载文件的功能)

    转自:https://www.cnblogs.com/zhangxinqi/p/8372774.html 阅读目录 1.paramiko模块介绍 2.paramiko的使用方法 回到顶部 1.para ...

  2. python paramiko ssh登录交换机执行命令

    # encoding=utf-8 import paramiko import time client = paramiko.SSHClient() client.load_system_host_k ...

  3. Linux命令之远程登录与执行远程主机命令

    实现远程登录的命令 ssh.telnet.rlogin (1)ssh命令 ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器.ssh命令用于远程登录上Li ...

  4. Python 实现远程服务器批量执行命令

    paramiko 远程控制介绍 Python paramiko是一个相当好用的远程登录模块,采用ssh协议,可以实现linux服务器的ssh远程登录.首先来看一个简单的例子 import parami ...

  5. ssh批量登录并执行命令(python实现)

    局域网内有一百多台电脑,全部都是linux操作系统,所有电脑配置相同,系统完全相同(包括用户名和密码),ip地址是自动分配的.现在有个任务是在这些电脑上执行某些命令,者说进行某些操作,比如安装某些软件 ...

  6. Python实现ssh批量登录并执行命令

    局域网内有一百多台电脑,全部都是linux操作系统,所有电脑配置相同,系统完全相同(包括用户名和密码),ip地址是自动分配的.现在有个任务是在这些电脑上执行某些命令,者说进行某些操作,比如安装某些软件 ...

  7. 秘钥登录服务器执行shell脚本

    做自动化的时候,有时候避免不了要和服务器有互动,刚巧碰上一个项目,需要执行命令才能完成本次测试. 昨天遇到的是秘钥形式的,只有秘钥和用户名,百度找了许久也没有思路,(能账号密码登录服务器的还简单些), ...

  8. linux 命令行远程登录 后台运行命令的方法

    linux 命令行远程登录 后台运行命令的方法 http://blog.csdn.net/isuker/article/details/55061595 Linux 技巧:让进程在后台可靠运行的几种方 ...

  9. C#登录SSH执行命令,下载文件

    前言 批量登录SSH执行命令 ,把应急响应中的日志文件下载回来. 代码实现 Renci.SshNet编译出DLL,引用. using System; using System.Collections. ...

随机推荐

  1. C# ADO.NET与面向对象

    软件开发的三层:界面层,业务逻辑层,数据访问层: 数据访问层:项目添加App_Code文件夹: 实体类:根据数据库表结构,类名和数据库表名一致: 每个成员变量要与数据库表的列相对应,对象正好可以列为一 ...

  2. A1020. Tree Traversals

    Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and i ...

  3. c#中用lua脚本执行redis命令

    直接贴出代码,实现执行lua脚本的方法,用到的第三方类库是 StackExchange.Redis(nuget上有) 注:下面的代码是简化后的,实际使用要修改, using System; using ...

  4. java.net.SocketException: Connection reset 硬件防火墙也有罪?

    今天早上例行进行远程备份,可是我却发现,整个备份过程无法顺利完成. 在备份的过程中不断的抛出异常: java.net.SocketException: Connection reset 奇怪,在之前的 ...

  5. 1: Myeclipse10 优化设置

    一.myeclipse字体设置 Window->Preferences->General->Appearance->Colors and Fonts 在右侧找到”Aa Test ...

  6. babel的使用及babel与gulp结合工作流

    Babel 通过语法转换器支持最新版本的 JavaScript . 它有非常多的插件,这些插件能够允许我们立刻使用新语法,无需等待浏览器支持. 那我们怎么使用babel呢? 首先我们来了解babel基 ...

  7. webstorm的一些小技巧

    1.怎样禁止自动保存文件: 设置--->外观和行为--->常规--->Synchronization--->要么四个全不选,要么把最后两个不选 Settings--->A ...

  8. How to get API key (APPID)

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  9. 如何解决win7系统无法运行cmd命令提示符

    如何解决win7系统无法运行cmd命令提示符   CMD命令可以帮助我们很快的执行所需要的程序命令,可以查询系统中很多的信息和解决系统很多的故障,对我们来说非常方便,但是最近有用户反馈自己win7电脑 ...

  10. location对象的一些属性和方法

    window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面 以下是window.location的属性 window.location.host 返回主机名或者 ...