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

asyncssh的Python项目详细描述


asyncsh是一个python包,它提供了一个异步客户机和 基于python 3.4的sshv2协议的服务器实现+ 异步框架。

importasyncio,asyncssh,sysasyncdefrun_client():asyncwithasyncssh.connect('localhost')asconn:result=awaitconn.run('echo "Hello!"',check=True)print(result.stdout,end='')try:asyncio.get_event_loop().run_until_complete(run_client())except(OSError,asyncssh.Error)asexc:sys.exit('SSH connection failed: '+str(exc))

查看examples开始!

功能

  • 完全支持sshv2、sftp和scp客户端和服务器功能
    • shell、命令和子系统通道
    • 环境变量、终端类型和窗口大小
    • 直接和转发的TCP/IP通道
    • 与openssh兼容的直接和转发unix域套接字通道
    • 本地和远程TCP/IP端口转发
    • 本地和远程Unix域套接字转发
    • 通过SOCKS动态TCP/IP端口转发
    • 客户端和服务器上都支持X11转发
    • 带有openssh扩展的sftp协议版本3
    • SCP协议支持,包括第三方远程到远程拷贝
  • 在单个ssh连接上同时进行多个会话
  • 单个事件循环中的多个ssh连接
  • 具有可设置编码的基于字节和字符串的I/O
  • 各种key exchangeencryptionMAC算法
  • 支持gzip compression
    • 包括openssh变量,将压缩延迟到auth之后
  • 基于用户和主机的公钥、密码和键盘交互 身份验证方法
  • 许多类型和格式的public keys and certificates
    • 包括支持RFC 6187中定义的X.509证书
  • 支持在unix系统上访问由ssh-agent管理的密钥
    • 包括客户端和服务器上的代理转发支持
  • 支持在Windows上访问Putty选美代理管理的密钥
  • 支持通过openssh的ssh keysign访问主机密钥
  • openssh样式known_hosts file支持
  • openssh样式authorized_keys file支持
  • 与openssh“encrypt then mac”选项兼容,以获得更好的安全性
  • 基于时间和字节计数的会话密钥重新协商
  • 易于扩展以支持新形式的密钥交换, 身份验证、加密和压缩算法

许可证

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

Copyright (c) 2013-2018 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/

此程序也可以在以下辅助项下提供 许可证,前提是 满足eclipse公共许可证v2.0:

GNU General Public License, Version 2.0, or any later versions of that license

SPDX许可证标识符:EPL-2.0或GPL-2.0或更高版本

有关此许可证的详细信息,请参见Eclipse Public License FAQ

先决条件

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

  • python 3.4或更高版本
  • 密码学(PYCA)2.7或更高版本

安装

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

pip install asyncssh

可选附件

可以安装一些可选模块来启用其他 功能:

asyncsh定义了以下可选的pypi额外包 易于安装任何或所有这些依赖项:

bcrypt
gssapi
libnacl
pyOpenSSL
pypiwin32

用于Ex例如,要在unix上安装bcrypt、gssapi、libnacl和pyopenssl, 您可以运行:

pip install 'asyncssh[bcrypt,gssapi,libnacl,pyOpenSSL]'

要在Windows上安装bcrypt、libnacl、pyopenssl和pypiwin32,可以运行:

pip install 'asyncssh[bcrypt,libnacl,pyOpenSSL,pypiwin32]'

注意,您仍然需要手动安装lib钠库 上面列出了libnacl的正确工作和/或umac的libnettle 支持。不幸的是,因为lib钠和libnettle不是python 包,它们不能直接使用pip安装。

安装开发分支

如果您想直接安装asyncsh的开发分支 在github中,您可以使用以下命令来执行此操作:

pip install git+https://github.com/ronf/asyncssh@develop

邮件列表

asyncsh有三个邮件列表:

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

推荐PyPI第三方库


热门话题
servlets Java EE+GlassFish:如果用户在其他地方登录,则强制用户注销   java在不更改源代码的情况下添加钩子   安卓 Java TextView Onclick()返回表达式错误   java Excel文件未使用Apache存储内部内存   java getRowCount()和getSelectedColumn()不起作用   无法在java中生成视图绑定。util。Android Gradle插件2.1的NoTouchElementException   Java中的类型转换运算符百分比计算为零   主java中的调用方法   java在Javasound中播放多个示例   java如何知道webDriver成功打开URL   java jmock,每次调用时返回新对象   eclipse使用Java在Selenium WebDriver中生成可执行文件   macos捆绑Java OS X应用程序默认为MacRoman编码   java我应该把我的休息网关变成一个图书馆吗?   java Eclipse插件:查找包含子字符串的行号无效   Java IOException:在Linux上发送UDP数据包时没有可用的缓冲区空间   java无法解析jaxbxjc2中的名称“xjc:globalJavaType”。2.52.罐子   java是否有HibernateAPI来检查是否创建了数据库?