使用paramiko通过SSH的Pyfilesystem2
项目描述
miarec_sshfs
是为 PyFilesystem2 定制的 SFTP 文件系统
这是 fs.sshfs 项目的分支,经过修改以满足我们的需求。
需求
PyFilesystem2 | |||
---|---|---|---|
six | |||
paramiko | |||
property-cached |
miarec_sshfs
支持 Python 版本 3.6+
与 fs.sshfs
的显著差异
-
由于在SaaS项目中使用此组件时可能存在安全风险,已移除从SSH Config文件(
~/.ssh/config
)加载配置的功能。 -
由于在SaaS项目中使用此组件时可能存在安全风险,禁止自动从SSH Agent加载SSH密钥。
-
打开协议前缀为
mssh://
和msftp://
(而不是原始的ssh://
和sftp://
) -
禁止URL,因为可能通过URL泄露SFTP凭证。
安装
使用 pip 从 GitHub 安装
$ pip install git+https://github.com/miarec/miarec_sshfs@master
使用方法
要连接到SSH服务器,请使用fs.sshfs.SSHFS
构造函数,其签名如下:
from miarec_sshfs import SSHFS
my_fs = SSHFS(
host, user=None, passwd=None, pkey=None, timeout=10, port=22,
keepalive=10, compress=False, config_path='~/.ssh/config'
)
以下是对每个参数的解释
host
:SSH服务器的名称或IP地址user
:连接时使用的用户名,默认为当前用户。passwd
:可选的密码,用于直接连接到服务器或解密公钥(如果有)。pkey
:一个paramiko.PKey
对象、路径或SSH密钥的路径列表。timeout
:网络操作的超时时间,以秒为单位。port
:SSH服务器监听的端口。keepalive
:keepalive数据包之间的时间间隔,以秒为单位。设置为0以禁用。compress
:设置为True
以压缩与服务器之间的通信。config_path
:OpenSSH配置文件的路径。exec_timeout
:在服务器上执行任意SSH命令的超时时间,以秒为单位。policy
:一个paramiko.MissingHostKeyPolicy
实例,或设置为None
以使用paramiko.AutoAddPolicy
。
其他关键字参数将被传递给底层的paramiko.SSHClient.connect
调用,并优先于隐式推导的参数。一旦创建,SSHFS
文件系统就像任何其他文件系统一样(请参阅PyFilesystem2文档)。
文件
SSHFS.openbin
有如下额外选项,可以作为关键字参数传递以控制文件缓冲
prefetch
:默认启用,使用后台线程预取以读取模式打开的文件的 内容。对于写入模式的文件不执行任何操作。pipelined
:启用管道模式,避免在两个上传块之间等待服务器回答。对于读取模式的文件不执行任何操作。
测试
自动单元测试在GitHub Actions上运行
要在本地运行测试,请执行以下操作。
在本地机器上安装Docker。
创建激活Python虚拟环境
python -m vevn venv
source venv\bin\activate
安装项目和测试依赖项
pip install -e ".[test]"
运行测试
pytest -v
反馈
发现了一个错误?有增强请求吗?如果您需要报告或询问某些内容,请访问项目的GitHub问题跟踪器。如果您正在填写错误报告,请尽可能多地提供有关问题的信息,并尝试在简单、易于复现的情况下重现相同的错误。
致谢
miarec_ssfs
由MiaRec开发和维护
原始代码(fs.sshfs
)由
以下人员对fs.sshfs
做出了贡献
- Reimar Bauer
- Paul Gessinger
- Mariusz Kryński
- Will McGugan
- Jeremy Nimmer
- Tim Nyborg
- Danica J. Sutherland
- John Vandenberg
此项目显然对PyFilesystem2项目及其所有贡献者的贡献很大。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源代码分发
构建的发行版
miarec_sshfs-2024.1.5.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ef977d90e8afd1007ababc6340ccc2947c32d0bf8dddeb03f45efc96e3d3cdf8 |
|
MD5 | 1ba0af5cc0f68293954dc1efde91d601 |
|
BLAKE2b-256 | 6e7bffd7ebdf91850c1de7b350cff1f4366161de1bd755e53639f1aa6b690091 |
miarec_sshfs-2024.1.5-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4840d286913ca1dfe1201515aaf05f36ad9b54ad69a7316437c3da8b5b40f1ff |
|
MD5 | d2f3b87e403098c2611a6f4fbf371a72 |
|
BLAKE2b-256 | 62f94b9b0a3299a3b36853721b7216c5f8168b4dce1139127c9232f6ecba0426 |