是否可以自动挂载sshfs


10

实例化适当的VPN连接后,是否可以使用sshfs自动挂载远程FS?

请允许我解释一下我正在远程工作的情况,如果可以从办公室中的服务器上安装我的家庭目录,这样做会有所帮助。为此,我需要VPN。因此,在网络管理器中,我选择了相关的VPN并进行连接。它可以连接,但是现在我必须放到命令行并将主目录挂载到多台计算机上。

如果我忘记做一台机器,那么我本地的开发环境就没有那么高效了。我想我可以编写一个快速的bash脚本来执行此操作,但我希望它在连接时自动运行。



@Seth这个问题是重复的;)
RaduRădeanu2014年

@RaduRădeanu这个问题比较笼统,因此将来对人们会有所帮助。
赛斯2014年

实际上,我改变了主意,他们是完全不同的问题。
赛斯2014年

Answers:


12

使用查找连接的UUID

$ nmcli con

请注意,这不仅列出了物理连接,而且还列出了已定义的无线连接(SSID)。

/etc/NetworkManager/dispatcher.d/目录中放置一些简单的脚本,如下所示:

#!/bin/bash

# Specify your connection UUID you like to trigger on below.
MYCON_UUID=397bdb70-2a89-415e-b3e9-09ca0b704fc1

if [ "$CONNECTION_UUID" == "$MYCON_UUID" ]
then
    # do your scripting you need to do here:
    mount -t sshfs ...
fi

不要忘记设置正确的权限以使其可执行(例如chmod +x trigger-sshfs-on-vpn.sh)。它可以是任何类型的脚本,Bash脚本可能足以满足您的目的。

NetworkManager仅执行此目录中的所有脚本,并提供一些可用于编写脚本的环境变量。在这种情况下,您可能只需要CONNECTION_UUID


这似乎是执行此操作的最佳方法。但是我无法mount -t sshfs user@host:/dir /home/myuser/dir上班,所以我已经尝试过了,sshfs hostname:?directory /home/myuser/dir但这似乎也不起作用。有任何想法吗?
Mark D

@MarkD您的问题仅出现在NetworkManager调度程序脚本中吗?如果不是,那么您可能要问另一个问题。并请更具体地说明“无效”。
gertvdijk 2012年

@gertvdijk如果我使用ssh prv键进行连接,并且希望与运行sshfs的用户具有相同的权限,该怎么办?意思是,权限也会起作用吗?
confiq 2013年

1
@confiq否,NetworkManager将以超级用户身份运行此脚本。与以root用户身份进行的其他任何调用一样,请使用su。例如。su -l username -c 'mycommand'
gertvdijk 2013年

1

使用autofs。

当有人在您的系统上访问文件夹时,Autofs会自动安装配置为安装点的文件夹。

安装点可以是通过sshfs的远程主机,也可以是任意其他安装点,例如:

  • 桑巴舞
  • nfs
  • NTFS

这里是一个很好的HOWTO


如果网络有时可以访问,则autofs将起作用。仅当我连接到VPN时才可以访问。
Mark D
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.