欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

可以自动登录远程服务器的python脚本

程序员文章站 2022-04-28 22:00:41
...
在企业里面,为了IDC机器的安全,通常不能直接登录IDC里面的机器,通过需要通过跳板机登录,在跳板机上面放置如下脚本,可以省去大量的登录工作。当然,也可以通过secureCRT的login script,但是每次输入跳板机的密码也是件麻烦事情。
以下脚本存在不足的地方是需要明文保存密码,vi之后会出现点可视区域变小。实现来源来自互联网,只是稍加改动,增加了信任机器间直接登录的情况。需要安装pexpect,安装方式搜索pexpect+python即可。


#!/usr/bin/python  
#coding=utf-8  
# 这是一个登录服务器的自动ssh脚本 ,需要安装pexpect module
#   
#  
# @created on 2012.3.7 5:56 am  
#  
import os  
import sys  
import pexpect  
import string  
  
Server_Ip={  
  
    "主机代号":["主机IP地址","登录账户","密码","服务器用途"]  
#   在此处添加主机列表      
}  
  
def auto_connect():  
    """ 
    自动登录实现,提供选择功能 
    """  
    while True:  
        print "\n\n###########################################################"  
        for server in Server_Ip.keys():  
            print "["+server+"]=>"+"["+Server_Ip[server][0]+"]"+" [服务器用途]=>"+"["+Server_Ip[server][3]+"]"  
        print "###########################################################\n"  
        destination=raw_input("[forest,which server do you want to connect?]=>")  
         
        if(Server_Ip.has_key(destination)):  
            print "\n正在连接服务器"+destination  
            break  
        else:  
            print "\n服务器没有添加到列表中"  
            return  
    URL="ssh %s@%s"%(Server_Ip[destination][1],Server_Ip[destination][0])  
#   print URL  
#   发起连接进程    
    try:  
        p=pexpect.spawn(URL)  
        if Server_Ip[destination][2] != "":
            p.expect("password:")
            p.sendline(Server_Ip[destination][2]+"\n")
        p.interact()  
    except:  
        print "关闭连接"  
auto_connect()  

相关标签: python login