¿Cómo especificar la clave en SSHFS?


70

Tengo una pregunta para la que no he podido encontrar una respuesta. Tengo dos computadoras, ambas con Ubuntu Linux 12.04. He configurado mi primera computadora ("hogar") para poder SSH en mi segunda computadora ("remota") usando la autenticación de clave RSA pública / privada.

Esta no es la primera conexión SSH que se configuró utilizando la autenticación de clave en la computadora de mi casa, por lo que la computadora de mi casa tiene varios archivos de clave privados id_rsa (cada uno de los cuales es para una computadora diferente en la que se debe conectar SSH). Por lo tanto, solo puedo usar SSH con éxito cuando especifico un archivo de claves (en ssh, la -iopción), usando ssh username@ipaddress -i path/to/keyfile/id_rsa.2.

Eso funciona muy bien. Sin embargo, también me gustaría usar sshfs, que monta el sistema de archivos remoto. Si bien sshparece jugar bien con varias claves, no puedo encontrar una manera sshfsde usar la clave privada correcta ("id_rsa.2").

¿Hay alguna manera sshfsde hacer esto?


El llavero funciona bien para mí en este escenario ...
jasonwryan

Respuestas:


94

Esto es lo que funciona para mí:

sshfs me@x.x.x.x:/remote/path /local/path/ -o IdentityFile=/path/to/key

Puede resolver esto a través de man sshfs:

-o SSHOPT = opciones de VAL ssh (ver man ssh_config)

man ssh_config

IdentityFile

Especifica un archivo del que se lee la identidad de autenticación DSA, ECDSA o DSA del usuario.


1
¡Gracias! @goldilocks, me perdí por completo la línea IdentityFile en la sshfspágina del manual. Eso es exactamente lo que estaba buscando, también. Acabo de probar su solución, y funciona perfectamente. Agradezco la ayuda!
JL

1
Este comando no funciona en macOS Sierra
basZero

1
IdentityFilenota de ruta Si se ejecuta sshfscon sudo, el uso ~en la IdentityFileruta se refiere al inicio de la raíz, que puede no estar donde está el archivo RSA. Use algo como en su /Users/<username>/.sshlugar.
Aaron

20

Lo que debe hacer es especificar qué clave privada usar en el ~/.ssh/configarchivo. por ejemplo:

Host server1.nixcraft.com
    IdentityFile ~/backups/.ssh/id_dsa
Host server2.nixcraft.com
    IdentityFile /backup/home/userName/.ssh/id_rsa

1
¡Muchas gracias! @ Steven, no me di cuenta de que sshfslee archivos .ssh / config (aunque ahora veo que me perdí una respuesta similar de la publicación anterior de alguien, en stackoverflow.com/a/13638806/1940466 ). Eso es excelente para saber. Por lo que vale, me gustaría aceptar sus respuestas y las de @goldilocks, pero no puedo. Tampoco tengo suficiente reputación para votar tu respuesta. Sin embargo, aprecio mucho la respuesta.
JL

3
sshfs -o ssh_command='ssh -i path/to/keyfile/id_rsa.2' username@ipaddress:/path /local/path

gracias, esta respuesta funcionó para mí en Arch Linux por montar el sistema de archivos de Android
Edward Torvalds
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.