リモート・サーバに自動的にログインできるpythonスクリプト

2116 ワード

企業では、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 "

###########################################################" for server in Server_Ip.keys(): print "["+server+"]=>"+"["+Server_Ip[server][0]+"]"+" [ ]=>"+"["+Server_Ip[server][3]+"]" print "###########################################################
" destination=raw_input("[forest,which server do you want to connect?]=>") if(Server_Ip.has_key(destination)): print "
"+destination break else: print "
" 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]+"
") p.interact() except: print " " auto_connect()