跳转到主要内容

使用paramiko通过SSH的Pyfilesystem2

项目描述

miarec_sshfs 是为 PyFilesystem2 定制的 SFTP 文件系统

Actions License

这是 fs.sshfs 项目的分支,经过修改以满足我们的需求。

需求

PyFilesystem2 PyPI fs Source fs License fs
six PyPI six Source six License six
paramiko PyPI paramiko Source paramiko License paramiko
property-cached PyPI property Source property License property

miarec_sshfs 支持 Python 版本 3.6+

fs.sshfs 的显著差异

  1. 由于在SaaS项目中使用此组件时可能存在安全风险,已移除从SSH Config文件(~/.ssh/config)加载配置的功能。

  2. 由于在SaaS项目中使用此组件时可能存在安全风险,禁止自动从SSH Agent加载SSH密钥。

  3. 打开协议前缀为 mssh://msftp://(而不是原始的 ssh://sftp://

  4. 禁止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服务器监听的端口。
  • keepalivekeepalive数据包之间的时间间隔,以秒为单位。设置为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_ssfsMiaRec开发和维护

原始代码(fs.sshfs)由

以下人员对fs.sshfs做出了贡献

此项目显然对PyFilesystem2项目及其所有贡献者的贡献很大。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源代码分发

miarec_sshfs-2024.1.5.tar.gz (31.7 kB 查看哈希值)

上传时间 源代码

构建的发行版

miarec_sshfs-2024.1.5-py2.py3-none-any.whl (25.4 kB 查看哈希值)

上传时间 Python 2 Python 3

支持