sshfs no usará ~ / .ssh / config (en Linux Mint 15)

10
Local:         Linux Mint 15 - Olivia
/proc/version: Linux version 3.8.0-19-generic (buildd@allspice) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) )
ssh -V:        OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012
sshfs -V:      SSHFS version 2.4
               FUSE library version: 2.9.0
               fusermount version: 2.9.0
               using FUSE kernel interface version 7.18

Remote:        Ubuntu 12.04.3 LTS
/proc/version: Linux version 3.10.9-xxxx-std-ipv6-64 ([email protected]) (gcc version 4.7.2 (Debian 4.7.2-5) )
ssh -V:        OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012

Estoy tratando de configurar un montaje remoto sin contraseña de un servidor remoto usando sshfs y fusible. El servidor remoto se está ejecutando en un puerto no estándar y utilizaré un par de claves ssh para autenticar.

Cuando tenga éxito, repetiré esto para tres servidores remotos más, cada uno con diferentes claves, por lo que necesito poder especificar qué asignaciones de teclas a qué servidor remoto.

Basé mis modificaciones en este tutorial

  • La clave pública está en remoto: claves_autorizadas
  • He agregado mi usuario local al fusegrupo.
  • He editado mi local ~/.ssh/configpara tener (por servidor):

``

Host [server_ip]
  Port = [port]
  IdentityFile  = "~/.ssh/[private_key]"
  User = "[user]"

``

Cada vez que intento montar el servidor remoto localmente, se me solicita la contraseña del usuario remoto (no la contraseña de mi clave privada). El usuario remoto tiene una contraseña larga generada aleatoriamente que me gustaría no tener que guardar o recordar, y así es como quiero hacer esto.

Puedo conectarme a través de ssh (combinado con el ~/.ssh/configarchivo) usando el comando, ssh [ip]así sé que el archivo de configuración se puede leer correctamente, ya que me piden la frase de contraseña de mi clave, no la del usuario remoto.

Incluso para intentar conectarme al servidor remoto, tengo que especificar manualmente los detalles completos de la conexión en el comando: `sshfs [usuario] @ [ip]: [ruta_remota] [ruta_local] -p [puerto]

Lo que he probado hasta ahora:

  • ssh-add / path / to / key (adición exitosa)
  • Especificando PreferredAuthentication = publickeyen ~ / .ssh / config
  • sshfs -o IdentityFile = / ruta / a / key user @ ip: / / my / mnt / dir
  • sshfs user @ ip: / / my / mnt / dir -o IdentityFile = / ruta / a / clave
  • cambio de nombre temporal de la clave al valor predeterminado de id_rsa
  • sshfs -F ~ / .ssh / config

¿Hay un archivo de configuración remota o local que estoy pasando por alto? ¿Algún interruptor u opción que necesito incluir en la llamada a sshfs (intentó -F) para forzarlo a leer y usar mi configuración ssh?

Salida de ssh -v -p [port] [user]@[remote_ip]

OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 de mayo de 2012
debug1: Lectura de datos de configuración /home/[mefont>/.ssh/config
debug1: /home/[mefont>/.ssh/config línea 2: aplicación de opciones para [remote_ip]
debug1: /home/[mefont>/.ssh/config línea 24: Aplicar opciones para *
debug1: lectura de datos de configuración / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config línea 19: Aplicar opciones para *
debug1: Conectando a [remote_ip] [[remote_ip]] puerto [puerto].
debug1: conexión establecida.
debug1: archivo de identidad /home/[mefont>/.ssh/[private_key] tipo 2
debug1: Comprobando el archivo de la lista negra /usr/share/ssh/blacklist.DSA-1024
debug1: Comprobando el archivo de lista negra /etc/ssh/blacklist.DSA-1024
debug1: archivo de identidad /home/[mefont>/.ssh/[private_keyfont>-cert type -1
debug1: protocolo remoto versión 2.0, versión de software remoto OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5 *
debug1: habilitación del modo de compatibilidad para el protocolo 2.0
debug1: cadena de versión local SSH-2.0-OpenSSH_6.1p1 Debian-4
debug1: SSH2_MSG_KEXINIT enviado
debug1: SSH2_MSG_KEXINIT recibido
debug1: kex: servidor-> cliente aes128-ctr hmac-md5 [email protected]
debug1: kex: cliente-> servidor aes128-ctr hmac-md5 [email protected]
depuración1: envío de SSH2_MSG_KEX_ECDH_INIT
debug1: esperando SSH2_MSG_KEX_ECDH_REPLY
debug1: clave de host del servidor: [clave]
debug1: comprobación sin identificador de puerto
debug1: el host '[remote_ip]' es conocido y coincide con la clave de host ECDSA.
debug1: Clave encontrada en /home/[mefont>/.ssh/known_hosts:7
debug1: clave coincidente encontrada sin puerto de salida
debug1: ssh_ecdsa_verify: firma correcta
debug1: SSH2_MSG_NEWKEYS enviados
debug1: esperando SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS recibidos
debug1: itinerancia no permitida por el servidor
debug1: SSH2_MSG_SERVICE_REQUEST enviado
debug1: SSH2_MSG_SERVICE_ACCEPT recibido
debug1: Autenticaciones que pueden continuar: publickey, password
debug1: Siguiente método de autenticación: publickey
debug1: Ofrecer clave pública de DSA: /home/[mefont>/.ssh/[private_key]
debug1: el servidor acepta la clave: pkalg ssh-dss blen 433
debug1: habilitación de la compresión en el nivel 6.
debug1: Autenticación exitosa (clave pública).
Autenticado en [remote_ip] ([[remote_ip]]: [puerto]).
debug1: canal 0: nuevo [sesión de cliente]
debug1: solicitando [email protected]
debug1: entrando en sesión interactiva.
debug1: entorno de envío.
debug1: enviando env LANG = en_GB.UTF-8
debug1: enviando env LC_CTYPE = en_GB.UTF-8
Bienvenido a Ubuntu 12.04.3 LTS (GNU / Linux 3.10.9-xxxx-std-ipv6-64 x86_64)

Editar:
encontré el problema. Estaba tratando de montar la ubicación remota en / mnt / new_dir usando sudo. Si me monte en una ubicación dentro de mi hogar local, entonces funciona. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount.

Yo he hecho ahora sudo chown root:fuse /mnt/new_diry sudo chmod 774 /mnt/new_diry creo que todos los que trabajan de la forma prevista.

¿Hay algún problema de seguridad con esta configuración que deba tener en cuenta? (Mi propio usuario y root son los únicos miembros del fusegrupo.

indivisible
fuente
Hola MBS, puede ejecutar ssh con el modificador -v para mostrar cualquier error que pueda estar presente. Puede valer la pena hacer esto para ver si hay un error al leer el archivo. Además, sus claves en el servidor de destino deben tener 600 permisos.
Rqomey
Gracias por la rápida respuesta. ssh verbose: pastebin.com/Rm5X7y5p (Regresaré con sshfs verbose en un minuto
indivisible el
sshfs que usa el -o ssh_command='ssh -v'comando simplemente se cuelga y no genera nada
indivisible el
Creo que he encontrado el problema (o al menos me he acercado a él). Estaba tratando de montar la ubicación remota en / mnt / new_dir usando sudo. Si me monte en una ubicación dentro de mi hogar local, entonces funciona. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount. ¿Puedo configurar mi usuario para que tenga los permisos necesarios para montar en / mnt para que otros usuarios puedan hacer uso de los recursos remotos?
indivisible el
1
Veo que eres nuevo en stackexchange, así que bienvenido. Pero algunos consejos: sé que le gusta intentar anonimizarse ocultando datos, pero realmente no debería. Si hubiera proporcionado esa información que indica dónde estaba montando el soporte, otros podrían haber notado el problema. Tampoco enlace a sitios externos (pastebin) para proporcionar resultados, inclúyalo aquí. Por último, si tiene una solución, proporciónela como respuesta y acepte esa respuesta, no ponga "resuelto" en el tema.
Patrick

Respuestas:

12

Si está utilizando sudo, es probable que esté utilizando las credenciales de root para montar, lo que no creo que sea lo que desea. Probablemente no haría lo que estás pidiendo, wrt. montaje /mntcomo usuario1 y acceso como usuario2. Se va a complicar con grupos y permisos de usuario. Si realmente desea montar un directorio en / mnt para compartir, realmente debería montarlo a través del nivel del sistema para todos los usuarios autofs.

Montaje automático

Hay 3 métodos que conozco para montar automáticamente una montura como esta.

slm
fuente
Ese era exactamente el problema. He editado mi pregunta para incluir los pasos que he tomado para modificar los permisos de la carpeta en cuestión, pero aunque funciona, estoy bastante seguro de que no es la mejor solución. - Todavía no había intentado usarlo, autofsya que no podía establecer la conexión sshfs antes. ¿Sugiere que agregue otro par de claves a local:/root/.ssh/keyy remote:/[user]/.ssh/authorized_keys? ¿Qué debería ser chowny chmodser para el local:/mnt/dirser? (Quiero permisos completos para mí y solo lectura para otros usuarios)
indivisible el
@mbs - ver actualizaciones
slm
1
Esa URL a autofs, ¿es correcta? Porque parece incorrecto cuando lo solicita. Muestra deportes en un idioma no inglés.
Geoffrey Anderson el