异步ssh:异步sshv2客户机和服务器库

asyncssh-unofficial的Python项目详细描述


异步ssh概述

asyncsh是一个python包,它提供了一个异步客户机和 基于python异步的sshv2协议的服务器实现 框架。它需要python 3.4或更高版本,并且pyca库或 一些加密函数的pycrypto库。

此软件包按以下条款发布:

Copyright (c) 2013-2014 by Ron Frederick <ronf@timeheart.net>. All rights reserved.

This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution and is available at:

http://www.eclipse.org/legal/epl-v10.html
贡献者:
ron frederick-初始实现、api和文档

值得注意的功能包括:

  • 基于python 3从头开始编写
  • 支持多种密钥交换方法
    • Diffie Hellman第1组和第14组SHA1
    • 与SHA1和SHA256进行Diffie-Hellman组交换
    • 椭圆曲线diffie-hellman(nistp256、nistp384和nistp521)
    • curve25519(如果安装了curve25519 donna python包装器)
  • 支持多种身份验证方法
    • 密码、公钥和键盘交互功能
  • 支持多种公钥格式
    • dsa、rsa和ecdsa密钥
    • pkcs 1/pkcs 8 der和pem、openssh和rfc4716格式
    • 基于密码的私钥加密
  • 支持多种密码(通过pyca或pycrypto提供)
    • aes、arc4、河豚、cast和triple des
  • 支持多种mac算法
    • 带MD5、SHA1、SHA256和SHA512的HMAC
  • 支持gzip压缩
    • 包括openssh变量,将压缩延迟到auth之后
  • 支持传递环境变量、终端类型和窗口大小
  • 支持在单个ssh连接上同时进行多个会话
  • 支持在单个事件循环中处理多个ssh连接
  • 支持直接和转发的TCP/IP通道
  • 支持基于字节和字符串的I/O,可设置编码
  • 与openssh“encrypt then mac”选项兼容,以获得更好的安全性
  • 基于时间和字节计数的会话密钥重新协商
  • 易于扩展以支持新形式的密钥交换, 身份验证方法、密码和压缩算法

先决条件

要使用asyncssh,您需要以下信息:

  • python 3.4或更高版本
  • pycrypto 2.6或更高版本和/或pyca 0.6.1或更高版本

安装

  1. http://www.python.org或 最喜欢的包装系统。

  2. 可以选择从http://www.pycrypto.org安装pycrypto 2.6或更高版本 或者你最喜欢的包装系统。

  3. 可以选择从https://cryptography.io安装pyca 0.6.1或更高版本 或者你最喜欢的包装系统。

  4. 可选安装Curve25519 Donna http://github.com/agl/curve25519-donna如果您想支持 曲线25519 Diffie-Hellman密钥交换。

  5. 通过运行以下命令安装asyncsh:

    % pip install asyncssh
    
  6. 查看examples开始!

邮件列表

asyncsh有三个邮件列表:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带truezip的java拆分zip   java Spring,AppEngine:在AppEngine的数据源中添加postgresql url   java Android coverflow   java以编程方式创建复合过滤器,以在log4j 2中定义多个过滤器   java jpa eclipselink异常[eclipselink 4002]   中的java WordNet数据库目录相对路径。罐子   java无法在Spring Boot 2/3中显示登录的用户   java Onetomany:未找到联接表错误   java数据模型演化   java方法在类型列表中添加的(对象)不适用于参数(int)意味着什么?   用java打印两个数组   java SNMP4J发送从不超时   java添加/删除联系人(EditText)+类别(SpinnerBox),可以根据需要动态添加/删除多个联系人   语句和PreparedStatement之间的java差异   java在运行作为JAR归档文件分发的项目时加载图像等资源   来自应用程序或外部服务器的java Cron作业   多线程Java并发:并发添加和清除列表项   java更改单元测试的私有方法行为