源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Windows系统下安装Python的SSH模块教程

  • 时间:2021-08-06 21:50 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Windows系统下安装Python的SSH模块教程
Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模块,因此要在Python中使用SSH,则需要先安装模块顺序是:pycrypto -> ecdsa -> paramiko [b]1、安装pyCrypto[/b] 安装这个比较麻烦,需要本地编译,要装vs或gcc还有一堆配置,还不一定能编译成功。(网上能搜到安装步骤) 建议直接下载已编译版: [url=http://www.voidspace.org.uk/python/modules.shtml#pycrypto]http://www.voidspace.org.uk/python/modules.shtml#pycrypto[/url] 直接下载并安装既可。 (注:crypto有java和C++版) [b]2、安装ecdsa[/b] 看很多博客没有提到这个库,但我执行paramiko时,提示找不到ecdsa模块。 下载:[url=https://pypi.python.org/pypi/ecdsa/0.9]https://pypi.python.org/pypi/ecdsa/0.9[/url] ,解压到一个目录,目录中有一个setup.py。 安装比较简单,windows下直接在刚才解压后的目录执行:python setup.py install [b]3.安装paramiko[/b] 与安装ecdsa类型,只是打开下载页面很慢。。。 下载: [url=https://github.com/paramiko/paramiko]https://github.com/paramiko/paramiko[/url]#, 安装步骤同ecdsa 注:1、所有另外安装的第三方库,如果不特指定安装后库目录的话,将默认保存到 %PYTHON_HOME%\Lib\site-packages下。 2、python大小写敏感,对模块名也是。 3、Crypto可以提供常见的加解密算法,如:RSA、RC4、DSA、DES 测试代码:
[u]复制代码[/u] 代码如下:
#!/usr/bin/python # -*- coding:utf-8 -*- # cp@chenpeng.info import paramiko def MAIN():     host = “10.1.1.1″     port = 22     user = “root”     pswd = “111222333″     ssh = paramiko.SSHClient()     ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())     ssh.connect(host, port, user, pswd)     stdin, stdout, stderr = ssh.exec_command(‘ifconfig')     print stdout.read()     ssh.close() # if __name__=='__main__':     try:         MAIN()     except Exception,e:         print e
  输出如下: [img]http://files.jb51.net/file_images/article/201502/201525105956899.png?20151511037[/img] 目前主要用于批量执行多个服务器的ssh命令,批量维护比较方便。 下面是两种使用paramiko连接到linux服务器的代码 [b]方式一: [/b]
[u]复制代码[/u] 代码如下:
ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect("某IP地址",22,"用户名", "口令")
上面的第二行代码的作用是允许连接不在know_hosts文件中的主机 [b]方式二: [/b]
[u]复制代码[/u] 代码如下:
t = paramiko.Transport(("主机","端口")) t.connect(username = "用户名", password = "口令")
如果连接远程主机需要提供密钥,上面第二行代码可改成:
[u]复制代码[/u] 代码如下:
t.connect(username = "用户名", password = "口令", hostkey="密钥")
例子:
[u]复制代码[/u] 代码如下:
#!/usr/bin/python   import paramiko   ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect("某IP地址",22,"用户名", "口令") stdin, stdout, stderr = ssh.exec_command("你的命令")print stdout.readlines() ssh.close()
下载linux服务器上的文件
[u]复制代码[/u] 代码如下:
#!/usr/bin/python   import paramiko   t = paramiko.Transport(("主机","端口")) t.connect(username = "用户名", password = "口令") sftp = paramiko.SFTPClient.from_transport(t) remotepath='/var/log/system.log' localpath='/tmp/system.log' sftp.get(remotepath, localpath) t.close()
上传文件到linux服务器
[u]复制代码[/u] 代码如下:
#!/usr/bin/python   import paramiko   t = paramiko.Transport(("主机","端口")) t.connect(username = "用户名", password = "口令") sftp = paramiko.SFTPClient.from_transport(t) remotepath='/var/log/system.log' localpath='/tmp/system.log' sftp.put(localpath,remotepath) t.close()
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部