リモート・サーバに自動的にログインできるpythonスクリプト
企業では、IDCマシンの安全のため、通常はIDC内のマシンに直接ログインすることはできませんが、ジャンプマシンでログインする必要があることで、ジャンプマシンの上に以下のスクリプトを置くことで、大量のログイン作業を省くことができます.もちろん、secureCRTのlogin scriptも利用できますが、ジャンプ機のパスワードを入力するたびに面倒なことになります.
以下のスクリプトでは、パスワードを明示的に保存する必要があり、vi以降は点可視領域が小さくなります.実装ソースはインターネットから来ており,わずかな変更で信頼機器間の直接登録が増加している.pexpectをインストールする必要があります.インストール方法でpexpect+pythonを検索すればいいです.
以下のスクリプトでは、パスワードを明示的に保存する必要があり、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()