Como especificar a chave no SSHFS?

70

Tenho uma pergunta para a qual não consegui encontrar uma resposta. Eu tenho dois computadores, ambos os quais executam o Ubuntu Linux 12.04. Configurei meu primeiro computador ("casa") para poder fazer o SSH no meu segundo computador ("remoto") usando autenticação de chave RSA pública / privada.

Esta não é a primeira conexão SSH configurada usando a autenticação de chave no meu computador doméstico, portanto, o meu computador doméstico possui vários arquivos de chaves particulares id_rsa (cada um deles é para um computador diferente no qual o SSH se encontra). Assim, eu sou capaz de sucesso SSH só quando eu especificar um keyfile (em ssh, a -iopção), utilizando ssh username@ipaddress -i path/to/keyfile/id_rsa.2.

Isso funciona muito bem. No entanto, eu também gostaria de usar sshfs, que monta o sistema de arquivos remoto. Embora sshpareça funcionar bem com várias chaves, não consigo encontrar uma maneira sshfsde usar a chave privada correta ("id_rsa.2").

Existe uma maneira sshfsde fazer isso?

JL
fonte
Keychain funciona bem para mim neste cenário ...
jasonwryan

Respostas:

94

Aqui está o que funciona para mim:

sshfs [email protected]:/remote/path /local/path/ -o IdentityFile=/path/to/key

Você pode descobrir isso através de man sshfs:

-o SSHOPT = VAL ssh opções (consulte man ssh_config)

man ssh_config

IdentityFile

Especifica um arquivo a partir do qual a identidade de autenticação DSA, ECDSA ou DSA do usuário é lida.

Cachinhos Dourados
fonte
11
Obrigado! @goldilocks, perdi completamente a linha IdentityFile na sshfspágina de manual. Isso é exatamente o que eu estava procurando também. Acabei de experimentar sua solução e ela funciona perfeitamente. Agradeço a ajuda!
JL
11
Este comando não funciona no macOS Sierra
basZero
11
IdentityFilenota do caminho. Se estiver executando sshfscom sudo, use ~no IdentityFilecaminho se refere à página inicial do root, que pode não estar onde está o arquivo RSA. Use algo como em /Users/<username>/.sshvez disso.
Aaron
20

O que você precisa fazer é especificar qual chave privada usar no ~/.ssh/configarquivo. por exemplo:

Host server1.nixcraft.com
    IdentityFile ~/backups/.ssh/id_dsa
Host server2.nixcraft.com
    IdentityFile /backup/home/userName/.ssh/id_rsa
Steven You
fonte
11
Muito obrigado! @ Steven Você, eu não percebi que sshfslê arquivos .ssh / config (embora eu veja agora que perdi uma resposta semelhante da postagem anterior de alguém, em stackoverflow.com/a/13638806/1940466 ). É excelente saber disso. Pelo que vale, gostaria de aceitar as respostas de vocês e de @goldilocks, mas não posso. Também não tenho reputação suficiente para votar em sua resposta. Eu aprecio muito a resposta, no entanto!
JL
3
sshfs -o ssh_command='ssh -i path/to/keyfile/id_rsa.2' username@ipaddress:/path /local/path
user278801
fonte
graças esta resposta funcionou para mim no Arch Linux para montar o sistema de arquivos android
Edward Torvalds