标签: sshfs

如何为sshfs指定密钥文件?

我看了看,sshfs --help并没有提到密钥文件.我的计算机上有多个pub/priv密钥对(用于不同的服务器),我想指定使用哪个密钥.我该怎么做?

  usage: sshfs [user@]host:[dir] mountpoint [options]

  general options:
  -o opt,[opt...]        mount options
  -h   --help            print help
  -V   --version         print version

  SSHFS options:
  -p PORT                equivalent to '-o port=PORT'
  -C                     equivalent to '-o compression=yes'
  -F ssh_configfile      specifies alternative ssh configuration file
  -1                     equivalent to '-o ssh_protocol=1'
  -o reconnect           reconnect to server
  -o delay_connect       delay connection to server
  -o sshfs_sync          synchronous writes
  -o no_readahead        synchronous reads (no speculative readahead)
  -o sshfs_debug         print some debugging information
  -o cache=BOOL          enable caching …
Run Code Online (Sandbox Code Playgroud)

linux ssh sshfs

10
推荐指数
1
解决办法
2万
查看次数

使用sshfs并没有root权限挂载远程文件系统

我使用管理员机器作为普通用户,并希望通过sshfs安装一些远程文件系统.该机器没有安装sshfs.有没有办法可以将它作为普通用户安装并挂载远程文件系统?

提前致谢!

sshfs

9
推荐指数
1
解决办法
9909
查看次数

在不可靠的连接上挂载sshfs

我用sshfs挂载远程文件系统.如果ssh连接超时,则可能导致其他应用程序挂起(例如,仅打开本地文件的vim会话).系统恢复需要大约10分钟.即使我将远程文件系统挂载为只读,也会发生这种情况.为什么?有没有办法做sshfs挂载,以便在使用不可靠的连接(例如,wifi)时不会导致其他应用程序挂起?我不需要强大的东西,我只需要能够在远程计算机上查看文件,可以是只读的.

我使用lubuntu 12.10.

$sshfs -V
SSHFS version 2.4
FUSE library version: 2.9.0
fusermount version: 2.9.0
using FUSE kernel interface version 7.18
Run Code Online (Sandbox Code Playgroud)

fuse sshfs

7
推荐指数
2
解决办法
5868
查看次数

Docker 容器的 sshfs 挂载冻结,但仅当由 Python 挂载时

我有一台开发笔记本电脑 ( Mint 19.3) 和一台测试服务器 ( Ubuntu 18.04.4 LTS)。

笔记本电脑是 Docker version 19.03.5, build 633a0ea838,服务器是 Dockerversion 19.03.12, build 48a66213fe

我在容器内运行 Python 3.6 代码,它使用subprocess(下面的代码)创建到第三台服务器的 sshfs 挂载,之后 python 代码遍历挂载的目录。

在我的开发笔记本电脑上一切正常。但是在服务器上,目录会挂载(并且可以通过mount命令看到),但是 cd 进入目录只是挂起,而 Python 代码的后续walk只是挂起。(注意:python 代码永远不会崩溃或出错。它只是永远挂起。)

但是,如果我在容器的命令行中手动使用相同的 sshfs 命令,则该目录可以正常工作。

我不知道如何解决这个问题。

===2020-09-25 更新===

好的。由于 Python 代码使用子进程,sshfs 挂载显然可用于任何想要使用它的终端窗口。

我尝试从容器内的新终端窗口访问安装,但是当我 cd 到安装时 - 窗口只是冻结。

好吧,我把所有东西都搁置了一夜——现在当我尝试 cd 进入安装时......它起作用了。这就像坐骑必须坐几个小时才能工作。

有任何想法吗?

Python代码

@target_dir.setter    
def target_dir(self, value):
    if value is None:
        _tmp = tempfile.mkdtemp()
        self._TARGETDIR = _tmp

    else:
        self._TARGETDIR …
Run Code Online (Sandbox Code Playgroud)

containers sshfs python-3.x docker

7
推荐指数
1
解决办法
582
查看次数

macFUSE 给出 mount_macfuse: 挂载点 ... 本身位于 macFUSE 卷上 - Apple M1 macOS 12.3

这个问题快把我逼疯了。我不断收到错误:“macFUSE 给出 mount_macfuse:挂载点 ... 本身位于 macFUSE 卷上”

我的挂载点在哪里

当我运行 sshfs --version 时,我显然没有出现正确的 FUSE 版本,根据我的安装,我在 macOS 12.3 的系统偏好设置下安装了 4.2.4

我尝试从.dmg安装FUSE,我将其删除,尝试通过brew安装..重新启动后重新启动。将操作系统升级到最新。自制软件3.4.2

运行“sshfs --version”时终端的输出

SSHFS version 2.5 (OSXFUSE SSHFS 2.5.0)
FUSE library version: 2.9.9
fuse: no mount point
Run Code Online (Sandbox Code Playgroud)

我从来没有能够使用简单的命令挂载外部主机 fs:

sudo sshfs hosta:/ ~/Desktop/2 -o defer_permissions,auto_cache,reconnect,volname=hostamnt
Run Code Online (Sandbox Code Playgroud)

谁能解释一下这个问题?

fuse sshfs osxfuse apple-m1

7
推荐指数
1
解决办法
1万
查看次数

在尝试通过sshfs保存文件时,emacs会发出警告

我用一个sshfs文件系统挂载

% sshfs remote.host.org:/home/jrm /home/mnt/remote.host
Run Code Online (Sandbox Code Playgroud)

然后用这个文件系统编辑一个文件

% emacsclient -n /home/mnt/remote.host/some_file.c.
Run Code Online (Sandbox Code Playgroud)

当我保存文件时,我收到警告

some_file.c has changed since visited or saved.  Save anyway? (yes or no)
Run Code Online (Sandbox Code Playgroud)

其他编辑没有这个问题.是什么造成的?我该怎样预防呢?两台主机都运行ntp,时间相同.

TIA.

PS我知道我可以直接用tramp打开文件,但我更喜欢sshfs,假设我每次尝试保存文件时都可以摆脱这个警告.

emacs fuse sshfs

6
推荐指数
1
解决办法
581
查看次数

使用zsh的compdef或者compctl完成某个目录下所有命令的_hosts

我使用 afuse 通过 sshfs 将其他主机自动挂载到我的本地文件系统。像这样:

afuse -o timeout=30 -o mount_template=sshfs -C %r:/ %m -o unmount_template=fusermount -u -z %m ~/remote/
Run Code Online (Sandbox Code Playgroud)

这很好用,但我希望能够使用我的 ~/remote 目录自动完成/TAB 命令。Zsh 认为 ~/remote 是空的,这是可以理解的,因为 afuse 是一个神奇的虚拟 FUSE 文件系统。一旦我手动输入主机,子目录就可以正常工作。例如 ~/remote/host/[TAB] 工作正常。

大多数 zsh compdef 教程都专注于为您的自定义命令构建自定义完成程序。那不是我想要的。

我一直在尝试使用 compdef 将特定目录的完成覆盖到我的主机文件中(使用内置的 _hosts 完成功能),但据我所知, compdef 基于每个命令工作。我希望我的完成者能够处理所有试图在该目录上执行普通文件/目录完成的命令。

感觉它是如此基本,以至于它是单线的,如果我知道的话。我怎样才能做到这一点?

zsh fuse sshfs zsh-completion

6
推荐指数
1
解决办法
1036
查看次数

设置 sshfs 挂载的 umask

如果我在没有 umask 的情况下安装 sshfs 服务器,我会得到-rw-rw-r--新创建的文件。如果我尝试在浏览器上打开服务器上的 php 文件,则会收到以下错误:

Incorrect file/directory permissions: Above 755.
In order files to be processed by the webserver, their permissions have to be equal or below 755. 
Run Code Online (Sandbox Code Playgroud)

所以我尝试了umask=0022:新创建的文件有-rwxr-xr-x. 这些权限很好,因为上面的错误不再出现。但是,我不明白为什么新文件被设置为可执行文件......

您能解释一下吗?非常感谢...

file-permissions umask sshfs

5
推荐指数
1
解决办法
2万
查看次数

在 Mac OS X 上为本地文件夹挂载 SSHFS 以在 Ubuntu AWS 实例上编辑文件

我希望能够使用一个不错的 IDE 在本地编辑文件,并将本地计算机 ( ~/Code/myproject) 上的文件立即推送到云中的 Ubuntu 计算机 ( /home/ubuntu/myproject)。

我为我的 Mac OS X 笔记本电脑(本地)安装了FUSE 和 SSHFS 。

我在 EC2 上有一个 Ubuntu 16.04 AWS 实例:

ubuntu@ip-xxxxxx:~$ uname -a
Linux ip-xxxxxx 4.4.0-1017-aws #26-Ubuntu SMP Fri Apr 28 19:48:19 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@ip-xxxxxxx:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:    16.04
Codename:   xenial
Run Code Online (Sandbox Code Playgroud)

我使用一个.pem文件通过 SSH 进入带有该-i标志的盒子(尚未设置authorized_keys)。

这是我在本地计算机上执行的操作:

$ mount  # check for mounted
/dev/disk1 …
Run Code Online (Sandbox Code Playgroud)

macos ssh ubuntu fuse sshfs

5
推荐指数
1
解决办法
6649
查看次数

VSCode 远程 Python 虚拟环境

这是它不起作用的原因:

项目源代码位于远程机器上。Python虚拟环境安装在项目的根目录下(使用venv)。

我 sshfs 项目文件夹并启动本地 VSCode。它检测虚拟环境,但没有看到安装在其中的 pylint 或其他软件包。

Python 3.6.7 VS Code - 最新版本操作系统 - Debian 9 远程,Linux Mint 19 本地 sshfs 连接和 venv 安装在同一帐户下执行。

是否应该通过某种特殊方式将虚拟环境设置为可远程使用?

linux sshfs python-venv visual-studio-code

5
推荐指数
2
解决办法
1018
查看次数