如何使用 sshfs 自动挂载?

Blu*_*ird 15 sshfs

我正在使用以下命令将 ssh ubuntu 目录挂载到我的 ubuntu pc。

sshfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx
Run Code Online (Sandbox Code Playgroud)

我的问题是,我可以在我的桌面上为此创建一个脚本,当我需要安装驱动器时,我可以双击并运行此脚本,而无需始终手动输入命令。

con*_*use 16

您可以创建一个启动器并将其添加到启动器栏中,方法是将.desktop-file拖放到那里:

    #!/usr/bin/env xdg-open

    [Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Icon[en_US]=nautilus
    Name[en_US]=Connect to xy
    Exec=shfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx
    #OR: to mount and than open in nautilus (note the '/dir' where ':dir' used to be)
    #Exec=nautilus sftp://user@192.xx.xx.xx.xx/dir/dir
    Comment[en_US]=Connect to xy via ssh
    Name=Connect to xy
    Comment=Connect to xy via ssh
    Icon=nautilus
Run Code Online (Sandbox Code Playgroud)

建议 - 甚至更少的工作:

如果您想要更少的工作(=自动连接)和图形用户界面,您可能需要查看Gigolo 安装舞男. 只要存在书签文件系统,它就有自动挂载书签的能力。你可能想检查一下。

sudo apt-get install gigolo   # or use the install link above
Run Code Online (Sandbox Code Playgroud)

运行gigolo。首选项中有一个选项可以将其置于自动启动状态,另一个选项可以激活托盘图标。检查两者。然后添加您的书签。

这是一个屏幕截图:

在此处输入图片说明

壳程

另一种解决方案是将以下行放在您的 crontab 中(/etc/crontab使用 sudo 权限进行编辑):

@reboot sshfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx
Run Code Online (Sandbox Code Playgroud)

但是由于运行命令时 Ubuntu 的密码管理器不存在,因此您需要使用无密码的私钥/公钥对来对相关 ssh 服务器进行身份验证(或类似的身份验证方法)。这将在每次重新启动时安装它。

另一种解决方案是编辑您的/etc/fstab(如果您的 Ubuntu 版本提供该选项)。

  • OMG... 有史以来最糟糕的程序名称。 (8认同)

Sea*_*dex 8

我正在添加一种fstab方法,因为在此页面中没有人谈论它。如果您不想被黑客攻击并使用内置的高级安装功能,则需要使用/etc/fstab并且永不回头。

user@host:/remote/folder /mount/point  fuse.sshfs noauto,x-systemd.automount,_netdev,IdentityFile=/home/name/.ssh/id_rsa, allow_other,reconnect 0 0
Run Code Online (Sandbox Code Playgroud)
  • noauto 无论网络是否启动,都将停止诸如在启动时强行安装任何内容之类的简单操作。
  • x-systemd.automount 是知道何时挂载的智能守护进程。
  • _netdev标签还将识别它使用的是网络设备,因此它会一直等到网络启动。


小智 5

这个论坛主题展示了一种创建自动挂载 SSHFS 的方法,在我看来这正是您想要做的。