#需要使用SSH协议登录本地或远程计算机,并发送命令# use ssh to control remote computers
import os, sys, paramiko
from getpass import getpass
paramiko.util.log_to_file('auto_ssh.log',0)
def parse_user(user,default_host, default_port):'''given name [@host[:port]],return name,host,port,if not, return default host and port'''if '@' not in user:return user, default_host, default_portuser, host = user.split('@', 1)if ':' in host:host, port = host.split(':',1)else:port = default_portreturn user, host, int(port)def autoSsh(users, cmds, host = 'localhost', port = 22, timeout = 5.0, maxsize = 2000, password = None):max_size = 1024if password is None:passwords = {}for user in users:if user not in passwords:passwords[user] = getpass("Enter user '%s' password:" %user)for user in users:user, host, port = parse_user(user, host, port)try:transport = paramiko.Transport((host, port))transport.connect(username = user, password = passwords[user])channel = transport.open_session()if timeout:channel.settimeout(timeout)for cmd in cmd_list:channel.exec_command(cmd)response = channel.recv(max_size)print 'CMD %r (%r) -> %s' % (cmd, user, response)except Exception, err:print "ERR: unable to process %r: %s" % (user, err)if __name__  == '__main__':logname = os.environ.get("LOGNAME", os.environ.get("USERNAME"))host = 'localhost'port = 22usage = """usage: %s [-h host] [-p port] [-f cmdfile] [-c "command"] user1 user2 ...-c command -f command file-h default host (default: localhost)-p default host (default: 22)Example: %s -c "echo $HOME" %ssame as: %s -c "echo $HOME" %s@localhost:22""" % (sys.argv[0], sys.argv[0], logname, sys.argv[0], logname)import getoptoptlist, user_list = getopt.getopt(sys.argv[1:],'c:f:h:p:')if not user_list:print usagesys.exit(1)cmd_list = [ ]for opt , optarg in optlist:if opt == '-f':for r in open(optarg, 'rU'):if r.rstrip():cmd_list.append(r)elif opt == '-c':command = optargif command[0] == '"' and command[-1] == '"':command = command[1:-1]cmd_list.append(command)elif opt == '-h':host = optargelif opt == '-p':port = optargelse:print 'unknown option %r' %optprint usagesys.exit(1)autoSsh(user_list, cmd_list, host = host, port = port)

使用SSH执行远程登录相关推荐

  1. linux ssh连接交换机_访问SMB交换机CLI使用SSH或远程登录

    访问SMB交换机CLI使用SSH或远程登录 客观 Cisco小型企业被管理的交换机可以通过命令行界面(CLI)远程访问和被配置.访问CLI在一个基于终端的窗口允许命令被输入.如果喜欢配置使用在您的交换 ...

  2. php ssh 管理服务器,php 利用ssh执行远程或本地liunx服务器命令

    /** * 利用ssh执行 远程或本地liunx服务器命令 * 虽然可以用 shee_exec来执行本地机命令 但却无法选择用哪个用户来执行 此函数可解决此类问题 * $host ssh 主机名 可以 ...

  3. 【YM】ssh命令 远程登录Linux

    [YM]ssh命令 远程登录Linux spfanlost 2017.10.08 14:51:24 字数 646 阅读 1,008 菜鸟学Linux命令:ssh命令 远程登录 如何通过ssh远程登录l ...

  4. linux的SSH(远程登录)服务

    目录 一.SSH服务 1.什么是SSH 2.SSH(Secure Shell)协议 3.OpenSSH服务器配置文件 二.ssh远程登录方式 2.使用域名进程登录 3.故障解决 4.sshd服务支持的 ...

  5. 使用SSH客户端远程登录Linux主机(可替代samba、ftp服务)

    使用SSH客户端远程登录Linux主机(可替代samba.ftp服务) Linux系统起初就是为多用户而产生的,可以允许多个用户同时登录linux主机各自进行操作,如图1所示:   图1 SSH(Se ...

  6. 捷讯技术分享SSH 无法远程登录问题的处理办法汇总

    前面小编给大家分享过云服务器和虚拟主机的区别,那么我们就会发现虚拟主机是不支持远程登录的.所以购买云服务器 ECS(后续简称 ECS)Linux 服务器后,就会面临如何登录和使用的问题.而由于服务器在 ...

  7. SSH 无法远程登录问题的处理思路

    购买云服务器 ECS(后续简称 ECS)Linux 服务器后,首先面临的就是如何登录和使用的问题.而由于服务器在云端,所以日常运维中通常都会基于 SSH 客户端登录服务器进行相关操作.今天,我们就从登 ...

  8. 京东云 linux无法远程,问题解读 | Linux系统SSH无法远程登录时该怎么办?这里有篇小攻...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 对于Linux云主机,SSH是标配.在实际操作过程中有时会出现无法远程登录的情况,这里简单介绍了SSH无法登录的可能原因及排查方法,帮助大家用以自测. - ...

  9. linux配置ssh密码远程登录,配置ssh 无需密码即可登录远程服务器

    在平时工作或者开发自己的项目时,经常需要登录部署了项目代码的服务器来做一些调试,配置等相关的操作,像sftp.rsync之类的工具也是基于ssh通道来工作的.但是经常输密码登录服务器又会让人觉得很烦, ...

最新文章

  1. 美团实习面试:熟悉红黑树是吧?能不能写一下?
  2. python进行数据分析 kindle_利用Python进行数据分析
  3. 【c# 学习笔记】类实例化
  4. linux内核支持浮点吗,【转】Linux内核浮点计算支持
  5. feign整合hystrix:
  6. P2P技术详解(三):P2P中的NAT穿越(打洞)方案详解(进阶分析篇)
  7. 表达式求值(最详细分析+代码实现+表达式之间的相互转换)
  8. 7.2. cvs login | logout
  9. Updates were rejected because the tip of your current branch is behind
  10. Linux文件、文件内容搜索大全(find,grep命令)
  11. 设计学习---《大象》之系统分析
  12. firewall防火墙的规则添加
  13. JavaIO基础学习笔记
  14. atitit 读书与获取知识资料的attilax的总结与心得 v6
  15. [FJOI2014] 石子合并问题
  16. 阿里云免费企业邮箱申请链接入口支持50账号数
  17. QQ音乐的歌曲真实地址解析
  18. python实现数模转换_树莓派:PCF8591数模转换模块的使用
  19. 编写微信聊天机器人2《聊天精灵WeChatGenius》:引入Xposed库,使模块生效。
  20. 计算机一级考试:选择题汇总D(精简版)

热门文章

  1. Vscode解决Setting.json报警告:Problems loading reference ... Unable to load schema from ...
  2. 人工智能 | 自动驾驶与人工智能前沿研究报告(概念篇)
  3. 2017java最新面试题_2017年最新java面试题及答案
  4. java fast math,Java FastMath.ceil方法代碼示例
  5. dueros模拟测试没有请求后台_实战 | 用手写一个骚气的请求合并,演绎底层的真实...
  6. vc实现透明位图,透明背景
  7. python怎么命名未知数_码如其人,小老弟,你能写一手漂亮的Python函数吗
  8. AI理论知识基础(26)-相对熵,KL散度
  9. 自制操作系统学习笔记(2)-汇编程序体验
  10. 【数据竞赛】99%情况下都有效的特征筛选策略--Null Importance。