first commit
This commit is contained in:
@@ -0,0 +1,279 @@
|
||||
Metadata-Version: 2.1
|
||||
Name: asyncssh
|
||||
Version: 2.14.2
|
||||
Summary: AsyncSSH: Asynchronous SSHv2 client and server library
|
||||
Home-page: http://asyncssh.timeheart.net
|
||||
Author: Ron Frederick
|
||||
Author-email: ronf@timeheart.net
|
||||
License: Eclipse Public License v2.0
|
||||
Project-URL: Documentation, https://asyncssh.readthedocs.io
|
||||
Project-URL: Source, https://github.com/ronf/asyncssh
|
||||
Project-URL: Tracker, https://github.com/ronf/asyncssh/issues
|
||||
Platform: Any
|
||||
Classifier: Development Status :: 5 - Production/Stable
|
||||
Classifier: Environment :: Console
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: License :: OSI Approved
|
||||
Classifier: Operating System :: MacOS :: MacOS X
|
||||
Classifier: Operating System :: POSIX
|
||||
Classifier: Programming Language :: Python :: 3.7
|
||||
Classifier: Programming Language :: Python :: 3.8
|
||||
Classifier: Programming Language :: Python :: 3.9
|
||||
Classifier: Programming Language :: Python :: 3.10
|
||||
Classifier: Programming Language :: Python :: 3.11
|
||||
Classifier: Programming Language :: Python :: 3.12
|
||||
Classifier: Topic :: Internet
|
||||
Classifier: Topic :: Security :: Cryptography
|
||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||
Classifier: Topic :: System :: Networking
|
||||
Requires-Python: >= 3.6
|
||||
License-File: LICENSE
|
||||
Requires-Dist: cryptography (>=39.0)
|
||||
Requires-Dist: typing-extensions (>=3.6)
|
||||
Provides-Extra: bcrypt
|
||||
Requires-Dist: bcrypt (>=3.1.3) ; extra == 'bcrypt'
|
||||
Provides-Extra: fido2
|
||||
Requires-Dist: fido2 (>=0.9.2) ; extra == 'fido2'
|
||||
Provides-Extra: gssapi
|
||||
Requires-Dist: gssapi (>=1.2.0) ; extra == 'gssapi'
|
||||
Provides-Extra: libnacl
|
||||
Requires-Dist: libnacl (>=1.4.2) ; extra == 'libnacl'
|
||||
Provides-Extra: pkcs11
|
||||
Requires-Dist: python-pkcs11 (>=0.7.0) ; extra == 'pkcs11'
|
||||
Provides-Extra: pyopenssl
|
||||
Requires-Dist: pyOpenSSL (>=23.0.0) ; extra == 'pyopenssl'
|
||||
Provides-Extra: pywin32
|
||||
Requires-Dist: pywin32 (>=227) ; extra == 'pywin32'
|
||||
|
||||
.. image:: https://readthedocs.org/projects/asyncssh/badge/?version=latest
|
||||
:target: https://asyncssh.readthedocs.io/en/latest/?badge=latest
|
||||
:alt: Documentation Status
|
||||
|
||||
.. image:: https://img.shields.io/pypi/v/asyncssh.svg
|
||||
:target: https://pypi.python.org/pypi/asyncssh/
|
||||
:alt: AsyncSSH PyPI Project
|
||||
|
||||
|
||||
AsyncSSH: Asynchronous SSH for Python
|
||||
=====================================
|
||||
|
||||
AsyncSSH is a Python package which provides an asynchronous client and
|
||||
server implementation of the SSHv2 protocol on top of the Python 3.6+
|
||||
asyncio framework.
|
||||
|
||||
.. code:: python
|
||||
|
||||
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))
|
||||
|
||||
Check out the `examples`__ to get started!
|
||||
|
||||
__ http://asyncssh.readthedocs.io/en/stable/#client-examples
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
* Full support for SSHv2, SFTP, and SCP client and server functions
|
||||
|
||||
* Shell, command, and subsystem channels
|
||||
* Environment variables, terminal type, and window size
|
||||
* Direct and forwarded TCP/IP channels
|
||||
* OpenSSH-compatible direct and forwarded UNIX domain socket channels
|
||||
* Local and remote TCP/IP port forwarding
|
||||
* Local and remote UNIX domain socket forwarding
|
||||
* Dynamic TCP/IP port forwarding via SOCKS
|
||||
* X11 forwarding support on both the client and the server
|
||||
* SFTP protocol version 3 with OpenSSH extensions
|
||||
|
||||
* Experimental support for SFTP versions 4-6, when requested
|
||||
|
||||
* SCP protocol support, including third-party remote to remote copies
|
||||
|
||||
* Multiple simultaneous sessions on a single SSH connection
|
||||
* Multiple SSH connections in a single event loop
|
||||
* Byte and string based I/O with settable encoding
|
||||
* A variety of `key exchange`__, `encryption`__, and `MAC`__ algorithms
|
||||
|
||||
* Including OpenSSH post-quantum kex algorithm
|
||||
sntrup761x25519-sha512\@openssh.com
|
||||
|
||||
* Support for `gzip compression`__
|
||||
|
||||
* Including OpenSSH variant to delay compression until after auth
|
||||
|
||||
* User and host-based public key, password, and keyboard-interactive
|
||||
authentication methods
|
||||
|
||||
* Many types and formats of `public keys and certificates`__
|
||||
|
||||
* Including OpenSSH-compatible support for U2F and FIDO2 security keys
|
||||
* Including PKCS#11 support for accessing PIV security tokens
|
||||
* Including support for X.509 certificates as defined in RFC 6187
|
||||
|
||||
* Support for accessing keys managed by `ssh-agent`__ on UNIX systems
|
||||
|
||||
* Including agent forwarding support on both the client and the server
|
||||
|
||||
* Support for accessing keys managed by PuTTY's Pageant agent on Windows
|
||||
* Support for accessing host keys via OpenSSH's ssh-keysign
|
||||
* OpenSSH-style `known_hosts file`__ support
|
||||
* OpenSSH-style `authorized_keys file`__ support
|
||||
* Partial support for `OpenSSH-style configuration files`__
|
||||
* 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, encryption, and compression algorithms
|
||||
|
||||
__ http://asyncssh.readthedocs.io/en/stable/api.html#key-exchange-algorithms
|
||||
__ http://asyncssh.readthedocs.io/en/stable/api.html#encryption-algorithms
|
||||
__ http://asyncssh.readthedocs.io/en/stable/api.html#mac-algorithms
|
||||
__ http://asyncssh.readthedocs.io/en/stable/api.html#compression-algorithms
|
||||
__ http://asyncssh.readthedocs.io/en/stable/api.html#public-key-support
|
||||
__ http://asyncssh.readthedocs.io/en/stable/api.html#ssh-agent-support
|
||||
__ http://asyncssh.readthedocs.io/en/stable/api.html#known-hosts
|
||||
__ http://asyncssh.readthedocs.io/en/stable/api.html#authorized-keys
|
||||
__ http://asyncssh.readthedocs.io/en/stable/api.html#config-file-support
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
This package is released under the following terms:
|
||||
|
||||
Copyright (c) 2013-2022 by Ron Frederick <ronf@timeheart.net> and others.
|
||||
|
||||
This program and the accompanying materials are made available under
|
||||
the terms of the Eclipse Public License v2.0 which accompanies this
|
||||
distribution and is available at:
|
||||
|
||||
http://www.eclipse.org/legal/epl-2.0/
|
||||
|
||||
This program may also be made available under the following secondary
|
||||
licenses when the conditions for such availability set forth in the
|
||||
Eclipse Public License v2.0 are satisfied:
|
||||
|
||||
GNU General Public License, Version 2.0, or any later versions of
|
||||
that license
|
||||
|
||||
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
|
||||
|
||||
For more information about this license, please see the `Eclipse
|
||||
Public License FAQ <https://www.eclipse.org/legal/epl-2.0/faq.php>`_.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
To use AsyncSSH 2.0 or later, you need the following:
|
||||
|
||||
* Python 3.6 or later
|
||||
* cryptography (PyCA) 3.1 or later
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
Install AsyncSSH by running:
|
||||
|
||||
::
|
||||
|
||||
pip install asyncssh
|
||||
|
||||
Optional Extras
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
There are some optional modules you can install to enable additional
|
||||
functionality:
|
||||
|
||||
* Install bcrypt from https://pypi.python.org/pypi/bcrypt
|
||||
if you want support for OpenSSH private key encryption.
|
||||
|
||||
* Install fido2 from https://pypi.org/project/fido2 if you want support
|
||||
for key exchange and authentication with U2F/FIDO2 security keys.
|
||||
|
||||
* Install python-pkcs11 from https://pypi.org/project/python-pkcs11 if
|
||||
you want support for accessing PIV keys on PKCS#11 security tokens.
|
||||
|
||||
* Install gssapi from https://pypi.python.org/pypi/gssapi if you
|
||||
want support for GSSAPI key exchange and authentication on UNIX.
|
||||
|
||||
* Install liboqs from https://github.com/open-quantum-safe/liboqs
|
||||
if you want support for the OpenSSH post-quantum key exchange
|
||||
algorithm sntrup761x25519-sha512\@openssh.com.
|
||||
|
||||
* Install libsodium from https://github.com/jedisct1/libsodium
|
||||
and libnacl from https://pypi.python.org/pypi/libnacl if you have
|
||||
a version of OpenSSL older than 1.1.1b installed and you want
|
||||
support for Curve25519 key exchange, Ed25519 keys and certificates,
|
||||
or the Chacha20-Poly1305 cipher.
|
||||
|
||||
* Install libnettle from http://www.lysator.liu.se/~nisse/nettle/
|
||||
if you want support for UMAC cryptographic hashes.
|
||||
|
||||
* Install pyOpenSSL from https://pypi.python.org/pypi/pyOpenSSL
|
||||
if you want support for X.509 certificate authentication.
|
||||
|
||||
* Install pywin32 from https://pypi.python.org/pypi/pywin32 if you
|
||||
want support for using the Pageant agent or support for GSSAPI
|
||||
key exchange and authentication on Windows.
|
||||
|
||||
AsyncSSH defines the following optional PyPI extra packages to make it
|
||||
easy to install any or all of these dependencies:
|
||||
|
||||
| bcrypt
|
||||
| fido2
|
||||
| gssapi
|
||||
| libnacl
|
||||
| pkcs11
|
||||
| pyOpenSSL
|
||||
| pywin32
|
||||
|
||||
For example, to install bcrypt, fido2, gssapi, libnacl, pkcs11, and
|
||||
pyOpenSSL on UNIX, you can run:
|
||||
|
||||
::
|
||||
|
||||
pip install 'asyncssh[bcrypt,fido2,gssapi,libnacl,pkcs11,pyOpenSSL]'
|
||||
|
||||
To install bcrypt, fido2, libnacl, pkcs11, pyOpenSSL, and pywin32 on
|
||||
Windows, you can run:
|
||||
|
||||
::
|
||||
|
||||
pip install 'asyncssh[bcrypt,fido2,libnacl,pkcs11,pyOpenSSL,pywin32]'
|
||||
|
||||
Note that you will still need to manually install the libsodium library
|
||||
listed above for libnacl to work correctly and/or libnettle for UMAC
|
||||
support. Unfortunately, since liboqs, libsodium, and libnettle are not
|
||||
Python packages, they cannot be directly installed using pip.
|
||||
|
||||
Installing the development branch
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
If you would like to install the development branch of asyncssh directly
|
||||
from Github, you can use the following command to do this:
|
||||
|
||||
::
|
||||
|
||||
pip install git+https://github.com/ronf/asyncssh@develop
|
||||
|
||||
Mailing Lists
|
||||
-------------
|
||||
|
||||
Three mailing lists are available for AsyncSSH:
|
||||
|
||||
* `asyncssh-announce@googlegroups.com`__: Project announcements
|
||||
* `asyncssh-dev@googlegroups.com`__: Development discussions
|
||||
* `asyncssh-users@googlegroups.com`__: End-user discussions
|
||||
|
||||
__ http://groups.google.com/d/forum/asyncssh-announce
|
||||
__ http://groups.google.com/d/forum/asyncssh-dev
|
||||
__ http://groups.google.com/d/forum/asyncssh-users
|
||||
|
||||
|
||||
Reference in New Issue
Block a user