Skip to main content

AsyncSSH: Asynchronous SSHv2 client and server library

Project description

AsyncSSH Overview

AsyncSSH is a Python package which provides an asynchronous client and server implementation of the SSHv2 protocol on top of the Python asyncio framework. It requires Python 3.4 or later and either the PyCA library or the PyCrypto library for some cryptographic functions.

This package is released under the following terms:

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

Contributors:

Ron Frederick - initial implementation, API, and documentation

Notable features include:

  • Written from the ground up to be based on Python 3

  • Support for a number of key exchange methods
    • Diffie Hellman group1 and group14 with SHA1

    • Diffie Hellman group exchange with SHA1 and SHA256

    • Elliptic Curve Diffie Hellman (nistp256, nistp384, and nistp521)

    • Curve25519 (if curve25519-donna Python wrapper is installed)

  • Support for multiple authentication methods
    • Password, public key, and keyboard-interactive

  • Support for a variety of public key formats
    • DSA, RSA, and ECDSA keys

    • PKCS#1/PKCS#8 DER and PEM, OpenSSH, and RFC4716 formats

    • Password-based encryption of private keys

  • Support for a variety of ciphers (provided via PyCA or PyCrypto)
    • AES, ARC4, Blowfish, CAST, and Triple DES

  • Support for a variety of MAC algorithms
    • HMAC with MD5, SHA1, SHA256, and SHA512

  • Support for gzip compression
    • Including OpenSSH variant to delay compression until after auth

  • Support for passing environment variables, terminal type, and window size

  • Support for multiple simultaneous sessions on a single SSH connection

  • Support for handling multiple SSH connections in a single event loop

  • Support for direct and forwarded TCP/IP channels

  • Support for both byte and string based I/O with settable encoding

  • Compatibility with OpenSSH “Encrypt then MAC” option for better security

  • Time and byte-count based session key renegotiation

  • Designed to be easy to extend to support new forms of key exchange, authentication methods, ciphers, and compression algorithms

Prerequisites

To use asyncssh, you need the following:

  • Python 3.4 or later

  • PyCrypto 2.6 or later and/or PyCA 0.6.1 or later

Installation

  1. Install Python 3.4 or later from http://www.python.org or your favorite packaging system.

  2. Optionally install PyCrypto 2.6 or later from http://www.pycrypto.org or your favorite packaging system.

  3. Optionally install PyCA 0.6.1 or later from https://cryptography.io or your favorite packaging system.

  4. Optionally install curve25519-donna from http://github.com/agl/curve25519-donna if you want support for Curve25519 Diffie Hellman key exchange.

  5. Install AsyncSSH by running:

    % pip install asyncssh
  6. Check out the examples to get started!

Mailing Lists

Three mailing lists are available for AsyncSSH:

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asyncssh-0.9.2.tar.gz (82.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asyncssh-0.9.2-py3.4.egg (213.2 kB view details)

Uploaded Egg

File details

Details for the file asyncssh-0.9.2.tar.gz.

File metadata

  • Download URL: asyncssh-0.9.2.tar.gz
  • Upload date:
  • Size: 82.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for asyncssh-0.9.2.tar.gz
Algorithm Hash digest
SHA256 87482c5d298a264f21635b0a05e715be87ccf890a6ab2177cbba0fd19f98301a
MD5 c5ba365ea969930bfd99e3e9f43f429c
BLAKE2b-256 920778b6ee44d12f9ecc5f7b82aa0d62d7e2bc3e07743c45e868f85a024f5a48

See more details on using hashes here.

File details

Details for the file asyncssh-0.9.2-py3.4.egg.

File metadata

  • Download URL: asyncssh-0.9.2-py3.4.egg
  • Upload date:
  • Size: 213.2 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for asyncssh-0.9.2-py3.4.egg
Algorithm Hash digest
SHA256 9eda4df6e246773161fd75628c1d63a7876ed84d5590018d8a223f8d720b0561
MD5 806e34cffd4c3c0692e9fb39d852388e
BLAKE2b-256 1626171f8340d0f9ea235409d37eeeee75a0abade1ff559c93c1b9690dd0d223

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page