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
fuse
grupo. - He editado mi local
~/.ssh/config
para 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/config
archivo) 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 = publickey
en ~ / .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_dir
y sudo chmod 774 /mnt/new_dir
y 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 fuse
grupo.
fuente
-o ssh_command='ssh -v'
comando simplemente se cuelga y no genera nadasshfs -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?Respuestas:
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/mnt
como 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 usuariosautofs
.Montaje automático
Hay 3 métodos que conozco para montar automáticamente una montura como esta.
fuente
autofs
ya que no podía establecer la conexión sshfs antes. ¿Sugiere que agregue otro par de claves alocal:/root/.ssh/key
yremote:/[user]/.ssh/authorized_keys
? ¿Qué debería serchown
ychmod
ser para ellocal:/mnt/dir
ser? (Quiero permisos completos para mí y solo lectura para otros usuarios)