怎样用python实现scp

Python08

怎样用python实现scp,第1张

scp 功能很强大,但需要人工输入 password, 当然可以通过把 公钥保存在远程主机的 ~/.ssh 目录中,而后就不用输入password,但这需要配置.

用 sshpass 可能在命令输入 password, 但 需要用 “sudo apt-get install sshpass” 安装

如果不想用上面两种方法,可以用 expect 编写脚本可以帮助我们自动交互

虽然 Python 也提供 pexpect 模块,但既然 expect 很简单,为何不直接用 os.system() 去执行呢?

下面是我编写的类,实现了远程复制

[html] view plain copy

class RemoteShell:

def __init__(self, host, user, pwd):

self.host = host

self.user = user

self.pwd = pwd

def put(self, local_path, remote_path):

scp_put = '''

spawn scp %s %s@%s:%s

expect "(yes/no)?" {

send "yes\r"

expect "password:"

send "%s\r"

} "password:" {send "%s\r"}

expect eof

exit'''

os.system("echo '%s' >scp_put.cmd" % (scp_put % (os.path.expanduser(local_path), self.user, self.host, remote_path, self.pwd, self.pwd)))

os.system('expect scp_put.cmd')

os.system('rm scp_put.cmd')

但发现每次文件都没有复制完,我想看expect 究竟做了什么事情,还好 expect 提供 -d 参数给出更多的信息。

最后发现是被复制文件太大,expect 超时退出了

在脚本前加入 “set timeout -1" 就OK了

[html] view plain copy

scp_put = '''

set timeout -1

spawn scp %s %s@%s:%s

expect "(yes/no)?" {

send "yes\r"

expect "password:"

send "%s\r"

} "password:" {send "%s\r"}

expect eof

exit'''

目录

一、安装pywifi

二、构建wifi密码字典

注意啦!本地兴起大龄再婚群,单身进

广告

三、python实现wifi破解

四、结果展示

4.1选择要破解的wifi名称

4.2获取字典

4.3成功破解

一、安装pywifi

pywifi是在python中一个用于操作无线接口的模块,可以跨平台使用,Windows和Linux都支持

在notebook或者pycharm、anaconda中安装

pipinstallpywifi

二、构建wifi密码字典

一般字典包括数字(0-9)、字母(a-z,区分大小写)、特殊字符(!@#$%^&*()_+=-)