Paramiko 简介#
Paramiko 是纯 Python(3.6+)实现的 SSHv2 协议,提供客户端和服务器功能。它为高级 SSH 库 Fabric 提供了基础,建议在常见客户端用例(如运行远程 shell 命令或传输文件)中使用 Fabric。
直接使用 Paramiko 本身仅适用于需要高级/低级原语的用户,或者希望在 Python 中运行 sshd
的用户。
安装:
pip install paramiko
备注
Paramiko 依赖于 cryptography 来实现加密功能,它使用 C 和 Rust 扩展,但也提供了许多预编译的选项。有关详细信息,请参阅安装页面。
OpenSSH 的 RFC 规范页面是极好的资源和链接集合,我们不会在这里重复:https://www.openssh.com/specs.html
高级客户端 API 从创建 SSHClient
对象开始。为了进行更直接的控制,可以将套接字(或类似套接字的对象)传递给 Transport
,并使用 start_server()
或 start_client()
作为服务器或客户端与远程主机协商。
作为客户端,您负责使用密码或私钥进行身份验证,并检查服务器的主机密钥。(密钥签名和验证由 paramiko
完成,但您需要提供私钥并检查公钥的内容是否与您预期看到的相符。)
作为服务器,您负责决定允许哪些用户、密码和密钥,以及允许哪种类型的通道。
一旦完成,任何一方都可以向另一方请求流控制 Channel
,这些通道是 Python 对象,它们像套接字一样工作,但在加密会话上发送和接收数据。