您的位置:首页 > 运维架构 > Linux

python---使用pxssh模块模拟ssh登录linux主机

2017-12-26 22:13 471 查看
python—使用pxssh模块模拟ssh登录linux主机

1、配置环境,

客户端192.168.40.128,服务器192.168.40.129

客户端ssh登录服务器能够成功

root@kali:~/python/anquangongji# ssh root@192.168.40.129
Enter passphrase for key '/root/.ssh/id_dsa':
Linux kali 3.18.0-kali1-686-pae #1 SMP Debian 3.18.3-1~kali4 (2015-01-22) i686

The programs included with the Kali GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Dec 26 21:58:07 2017 from 192.168.40.128
root@kali:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:29:ee:b2:1f
inet addr:192.168.40.129  Bcast:192.168.40.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feee:b21f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:13045 errors:0 dropped:0 overruns:0 frame:0
TX packets:7781 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14386519 (13.7 MiB)  TX bytes:636403 (621.4 KiB)
Interrupt:19 Base address:0x2000

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:444 errors:0 dropped:0 overruns:0 frame:0
TX packets:444 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:26640 (26.0 KiB)  TX bytes:26640 (26.0 KiB)
root@kali:~#
root@kali:~# exit
登出
Connection to 192.168.40.129 closed.
root@kali:~/python/anquangongji#


2、目录与文件配置

root@kali:~/python/anquangongji# pwd
/root/python/anquangongji
root@kali:~/python/anquangongji# ls
cmd.log               pingip_false.txt            scanftpbanner.py
creakzipfile.py       pingip_true.txt             scanhostsingalport.py
dictionaryzip.txt     portscannernmapinternet.py  test.zip
pexpectftplogin.py    portscannernmap.py          text.txt
pexpectlog.py         portscanner.py              vulnbanners.txt
pexpectsshcommand.py  portscannerthread.py
pexpectssh.py         pxsshlgin.py
root@kali:~/python/anquangongji#


3、脚本源码:

root@kali:~/python/anquangongji#
root@kali:~/python/anquangongji# vi pxsshlgin.py
root@kali:~/python/anquangongji#
root@kali:~/python/anquangongji# cat pxsshlgin.py
#!/usr/bin/python
# --*-- coding:utf-8 --*--

import pxssh
import getpass

try:
s = pxssh.pxssh()#调用构造函数,创建一个pxssh 类的对象
hostname = raw_input("Hostname: ")#获得用户指定ssh主机域名
username = raw_input("Username: ")#获得用户指定ssh主机用户名
password =getpass.getpass("Pasword: ")#获得用户指定ssh主机密码
s.login(hostname,username,password,original_prompt="[$#>]")#利用pxssh类的login方法进行ssh登录,原始prompt为'$','#'或'>
s.sendline("pwd")#发送命令"pwd"
s.prompt()#匹配prompt
print s.before#将prompt前所有内容打印出,即命令"pwd"的执行结果
s.sendline("ifconfig")#发送命令"ifconfig"
s.prompt()#匹配prompt
print s.before#将prompt前所有内容打印出,即命令"ifconfig"的执行结果
s.logout()#退出ssh session
except pxssh.ExceptionPxssh,e:
print "pxssh failed on login"
print str(a)

root@kali:~/python/anquangongji#


4、脚本运行情况:

root@kali:~/python/anquangongji# python pxsshlgin.py
Hostname: 192.168.40.129
Username: root
Pasword:
pwd
/root

ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:29:ee:b2:1f
inet addr:192.168.40.129  Bcast:192.168.40.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feee:b21f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:12681 errors:0 dropped:0 overruns:0 frame:0
TX packets:7526 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14101634 (13.4 MiB)  TX bytes:604422 (590.2 KiB)
Interrupt:19 Base address:0x2000

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:432 errors:0 dropped:0 overruns:0 frame:0
TX packets:432 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:25920 (25.3 KiB)  TX bytes:25920 (25.3 KiB)

root@kali:~/python/anquangongji# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:29:65:7c:6d
inet addr:192.168.40.128  Bcast:192.168.40.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe65:7c6d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:258224 errors:0 dropped:0 overruns:0 frame:0
TX packets:315736 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:109914645 (104.8 MiB)  TX bytes:25059233 (23.8 MiB)
Interrupt:19 Base address:0x2000

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:8685 errors:0 dropped:0 overruns:0 frame:0
TX packets:8685 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4831901 (4.6 MiB)  TX bytes:4831901 (4.6 MiB)

root@kali:~/python/anquangongji#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python ssh pxssh