python登录脚本_python的一个简单的远程登录脚本

原标题:python的一个简单的远程登录脚本

#一个简单的远程登录脚本

import pexpect #Pexpect 是一个用来启动子程序并对其进行自动控制的纯 Python 模块 我们通过它来调用ssh来实现远程登录

import struct

import fcntl

import sys

#下面get_size模块是更改pexpect模拟的窗口大小,有的时候pexpect模拟的窗口会很小导致用起来很不方便 我们这边给他赋值

try:

import termios

import tty

except ImportError:

print '\033[1;31mOnly UnixLike supported.\033[0m'

time.sleep(3)

sys.exit()

def get_size():

if 'TIOCGWINSZ' in dir(termios):

TIOCGWINSZ = termios.TIOCGWINSZ

else:

TIOCGWINSZ = 1074295912L

s = struct.pack('HHHH', 0, 0, 0, 0)

x = fcntl.ioctl(sys.stdout.fileno(), TIOCGWINSZ, s)

return struct.unpack('HHHH', x)[0:2]

#connet方法是我们实现远程登录的方法 调用pexpect.spawn 来调用shell命令

def connet(username,password,host,port): #传入四个参数 第一个用户名,第二个密码,主机IP,主机端口

username=username

password=password

ip=host

port=port

try:

foo = pexpect.spawn('/usr/bin/ssh -q -o StrictHostKeyChecking=no %s@%s -p%s' % (username,ip,port)) #StrictHostKeyChecking=no 这个命令的意思是第一次登录的时候不输入yes

foo.expect('.*ssword:') #捕捉ssword字符串如果捕捉到了就sendline 密码

foo.sendline(password) #发送password密码

size = get_size() #调用get_size方法来获取窗口大小

foo.setwinsize(size[0], size[1])

foo.interact()

except pexpect.EOF:

print 'connect ssh socket prot error,please correct is'

except pexpect.TIMEOUT:

print 'Connect SSH TIMEOUT, Please Correct it.'

username=raw_input('输入用户名')

password=raw_input('输入密码')

host=raw_input('输入主机IP')

port=raw_input('输入主机端口')

try:

connet(username,password,host,port) #调用conet方法并传入四个参数

except Exception,e:

print e

在此,希望你有所收获,大家有什么问题或者学习中有什么困惑可以加群330637182,让我们一起进步学习!

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值