我-amdroid/sshfs挂载工具

用于管理并挂载SSH连接作为文件系统卷的命令行界面工具。

4.0.0 2023-10-01 11:43 UTC

This package is auto-updated.

Last update: 2024-09-30 01:40:37 UTC


README

SSHFS挂载工具(SMT)—— 用于管理并挂载SSH连接作为文件系统卷的命令行工具。
SMT是在SSHFS的基础上构建的,但设计时考虑了减少输入。

要求

  • Linux/macOS
  • PHP CLI >= 8.1.0
  • SSHFS

安装

安装SSHFS

Ubuntu

sudo apt install sshfs

macOS (osxfuse.github.io)

brew install sshfs

安装SSHFS挂载工具

选项1:使用Composer安装

composer global require i-amdroid/sshfs-mount-tool

请确保Composer的bin目录存在于您的PATH中。根据您的操作系统,Composer的bin目录可能是$HOME/.composer/vendor/bin$HOME/.config/composer/vendor/bin阅读更多)。根据您的shell,可以在~/.bash_profile~/.bashrc~/.zshrc等文件中设置。

如果Composer的bin目录不在PATH中,可以按照以下方式添加:

export PATH="$PATH:$HOME/.composer/vendor/bin"

或者

export PATH="$PATH:$HOME/.config/composer/vendor/bin"

选项2:手动安装

发布下载最新版本的phar文件。

chmod 755 smt.phar
sudo mv smt.phar /usr/local/bin/smt

用法

添加连接

smt add -v

连接属性

连接可以存储在~/.config/smt/stm.yml(全局)或当前目录下的stm.yml中。

add命令期间不会提示ssh_options,因此需要手动将其添加到配置文件中。

配置文件示例

connections:
  msrv:
    title: myserver
    server: server.com
    port: null
    user: iam
    password: null
    key: ~/.ssh/id_rsa
    mount: ~/mnt/msrv
    remote: /var/www
    options:
      - some_option
      - SomeAnotherOption=yes
    ssh_options:
      - '-o SomeOption=100'
      - '-f SomeFlag 200'

挂载连接

smt <connection id>

或直接

smt

它将显示已保存的连接以供选择,如果没有在配置文件中指定,将自动挂载。

卸载连接

smt um <connection id>

或者

smt um

所有命令

smt (mount) [<连接ID>, -p <密码>] — 挂载连接
smt unmount (um) [<连接ID>] — 卸载连接
smt add — 添加连接
smt remove (rm) [<连接ID>] — 删除连接
smt list (ls) [<连接ID>] — 列出连接属性
smt status (st) — 显示连接状态
smt config (cfg) — 打开配置文件
smt help (-h) [<命令>] — 显示帮助
smt --version (-V) — 显示版本
smt info (--info, -i) — 显示依赖信息
smt completion [<shell>] — 输出shell完成脚本

受限制的支持命令

smt cd [<连接ID>] — 切换到连接挂载目录
smt ssh [<连接ID>] — 启动SSH会话

目前仅在默认的Ubuntu终端(gnome-terminal)、默认的macOS终端(Terminal.app)和iTerm中支持。

使用密码认证启动SSH会话需要sshpass

在Ubuntu上安装

sudo apt install sshpass

在macOS上安装

brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb

配置文件

全局配置文件~/.config/smt/stm.yml,用于存储多个常用连接。

当前目录下的配置文件stm.yml,用于存储项目文件夹中的项目连接。如果配置文件中只有一个连接,则将自动使用它作为命令的<连接ID>参数。例如

smt — 挂载连接
smt um — 卸载连接

如果SMT是从包含stm.yml文件的文件夹中运行的,则将使用该文件作为配置文件。否则,将使用全局配置文件。要从包含stm.yml文件的文件夹使用全局配置文件,请使用全局选项(-g, --global)。

自v2.1版本起,SMT支持用户在~/.config/smt/config.yml文件中设置个人偏好。偏好设置允许用户自定义SSHFS命令、默认选项、添加新的终端、选择编辑器、设置默认挂载文件夹、默认全局选项状态。

开发

SMT最初是用纯PHP编写的。

V2版本已完全重写,使用Symfony Console组件。

V3版本已升级到使用Symfony 6.2。

V4版本已升级到使用Symfony 6.3。

欢迎任何形式的贡献。

未来计划

  • 添加测试
  • 美化info命令
  • 使用Homebrew进行安装

构建

  1. 克隆项目
  2. 通过Composer获取依赖
composer install
  1. 通过Box运行构建过程
box compile