¿Cómo montar automáticamente usando sshfs?


14

Estoy usando el siguiente comando para montar un directorio ssh ubuntu en mi pc ubuntu.

sshfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

Mi pregunta es, ¿puedo crear una secuencia de comandos para esto en mi escritorio donde puedo hacer doble clic y ejecutar esta secuencia de comandos siempre que necesito montar la unidad sin tener que escribir manualmente el comando siempre.

Respuestas:


15

Puede crear un iniciador y agregarlo a su barra de .desktopinicio arrastrando y soltando el archivo allí:

    #!/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

Sugerencia, incluso menos trabajo:

Si desea aún menos trabajo (= autoconexión) y una interfaz gráfica de usuario, puede consultar Gigolo Instalar gigolo . Tiene la capacidad de montar automáticamente un marcador, siempre que esté presente el sistema de archivos marcado. Quizá quieras echarle una ojeada a eso.

sudo apt-get install gigolo   # or use the install link above

Ejecutar gigolo. Hay una opción en las preferencias que lo pone en inicio automático y otra para activar el icono de la bandeja. Verifica ambos. Luego agrega tu marcador.

Aquí hay una captura de pantalla:

ingrese la descripción de la imagen aquí

Forma de concha

Otra solución sería poner la siguiente línea en su crontab (editar /etc/crontabcon privilegios de sudo):

@reboot sshfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

Pero dado que el administrador de contraseñas de Ubuntu no está presente cuando se ejecuta el comando, debe usar un par de claves privadas / públicas sin contraseña para autenticarse con el servidor ssh en cuestión (o un método similar de autenticación). Esto lo montaría en cada reinicio.

Otra solución sería editar su /etc/fstab(siempre que su versión de Ubuntu proporcione esa opción).


1
No puedo usar gigolo. Porque quiero usar un punto de montaje específico dentro de mi carpeta de inicio. Tu primera solución parece buena. Pero no tengo claro el nombre del archivo. Has dado ".desktop-file" ¿Es ese el nombre o la extensión del archivo? Por favor, dame más ejemplos sobre el nombre del archivo. Entonces puedo intentarlo.
BlueBird

Es la extensión. Todos los lanzadores en ubuntu terminan con ".desktop". Crea un archivo vacío. Copie el texto que publiqué arriba en él. Reemplace el texto detrás de "Nombre =" por lo que le convenga y sustituya las rutas reales en el texto detrás de "Exec =". Luego guárdelo como "connect.desktop" o "mountxy.desktop" (por ejemplo). Después de guardar el archivo, arrástrelo y suéltelo en el panel de inicio o donde lo desee.
con-f-use

¡¡Excelente!! Funcionó.
BlueBird

8
Dios mío ... el peor nombre para un programa.
Lekensteyn

Aparentemente, ya no hay opción para agregar gigolo al inicio automático, por lo que tendrá que hacerlo usted mismo. Ejecutar gnome-session-propertiesy agregar /usr/bin/gigolocomando. No es posible seleccionar un punto de montaje, pero puede crear un enlace simbólico a su directorio de inicio (con ln -s). Puede encontrar el punto de montaje original haciendo clic derecho en una carpeta en el administrador de archivos y seleccionando Open in Local Terminal.
Seppo Enarvi

4

Este hilo del foro muestra un método para crear un SSHFS de montaje automático que me parece exactamente lo que le gustaría hacer.


El hilo es bastante antiguo y para agregar montaje dependiente de la red ahora podemos usar x-systemdy _netdevopciones.
Turgon

3

Simplemente puede escribir esto en un script de shell y puede crear un iniciador para él en el escritorio.

Por ejemplo mountssh.sh:

#!/bin/bash
shfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

asegúrese de chmod +x mountssh.shy luego haciendo clic se ejecutará

Alternativamente, se puede montar a través de gvfs, haciendo clic derecho en el escritorio, y crear un lanzador con el parámetro URL: ssh://user@192.xx.xx.xx.xx/dir/dir. Por defecto se monta en ~/.gvfs/.... Si desea seguir con el /home/username/mount/xxx, puede crear un enlace simbólico desde el gvfs uno a este.


Creé el archivo "mount-192.168.1.5.sh" en mi escritorio. Cuando hago doble clic en él, se abre con gedit.
BlueBird

Debe crear este archivo sh con privilegios ejecutables en cualquier lugar y crear un iniciador en su escritorio que apunte a este archivo .sh.
Iradrian

2

Incluso podría ir un paso más allá y hacer que los autofs se encarguen del montaje por usted. Dado que autofs no funciona particularmente bien con la autenticación de clave pública SSH (a menos que desee crear un par de claves sin contraseña para el superusuario ), existen herramientas que le permiten utilizar las claves SSH, el agente ssh y el llavero del usuario:

  • autosshfs : por usuario SSHFS automount usando la configuración SSH del usuario
  • afuse : un automontador implementado con FUSE

0

Monto una carpeta de la misma manera, lo que hice fue crear un lanzador personalizado que apunta a un .sharchivo que contiene el comando. Solo asegúrate de que el archivo tenga permiso de ejecución y listo.

Solo hago clic en el lanzador:

ingrese la descripción de la imagen aquí


0

Traté de usar cron para montar automáticamente el directorio ssh, pero causa un error que dice Network is unreachable. Esto se debe a que la ejecución del trabajo cron es demasiado pronto para establecer conexiones IP. Después de insertar sleep antes del sshfscomando, se montó con éxito el directorio ssh.

sleep 5 && sshfs ......

Así que hice este script para cumplir mi requisito.

#! /bin/sh
while true
do 
    ping -c1 -w1 ssh_server_ip > /dev/null && break
done
sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 sshname:/mountpath /localmountpath
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.