PitchHut
Log in / Sign up
asyncssh
10 views
Asynchronous SSH made simple with AsyncSSH for Python.
Pitch

AsyncSSH is a powerful Python package that enables seamless asynchronous SSHv2 communication using the asyncio framework. With support for SFTP, SCP, and various advanced features, it allows developers to create efficient applications that handle multiple SSH connections and sessions effortlessly. Discover how AsyncSSH can simplify your Python networking projects.

Description

AsyncSSH: Asynchronous SSH for Python

AsyncSSH is a powerful Python package that offers an asynchronous client and server implementation of the SSHv2 protocol, leveraging the capabilities of the Python 3.6+ asyncio framework. This library is designed for developers who require high-performance, non-blocking network communication in their applications.

Key Features

  • Full Support for SSHv2, SFTP, and SCP: Utilize a comprehensive set of client and server functionalities, including shell, command, subsystem channels, and advanced TCP/IP channel options.
  • Multiple Concurrent Sessions: Manage multiple simultaneous SSH sessions efficiently using a single connection, enhancing productivity and resource management.
  • Diverse Authentication Methods: Integrated support for various authentication techniques including public key, password, and keyboard-interactive methods, ensuring robust security.
  • Extensible Design: Easily extend AsyncSSH to add support for new key exchange, authentication, or encryption methods, catering to evolving security needs.

Example Usage

To get started with AsyncSSH, here's a simple example of how to run a client that connects to an SSH server and executes a command:

import asyncio, asyncssh, sys

async def run_client():
    async with asyncssh.connect('localhost') as conn:
        result = await conn.run('echo "Hello!"', check=True)
        print(result.stdout, end='')

try:
    asyncio.get_event_loop().run_until_complete(run_client())
except (OSError, asyncssh.Error) as exc:
    sys.exit('SSH connection failed: ' + str(exc))

Explore more examples in the documentation to familiarize yourself with various functionalities!

Robust Security Options

AsyncSSH comes with a variety of encryption and MAC algorithms, including support for post-quantum key exchange algorithms like ML-KEM and SNTRUP, ensuring enhanced security for your data transmission. Additionally, you can leverage advanced compression techniques and manage authentication through ssh-agent on UNIX systems.

Getting Started

To delve deeper into AsyncSSH, visit the official documentation for thorough guidance on installation, advanced configurations, and integration into your projects.

Whether you're building a complex application requiring reliable SSH communications or simply need SSH support for automation, AsyncSSH stands out as an ideal solution, marrying the power of asynchronous programming with the robust SSH protocol.