O sshfs não usará ~ / .ssh / config (no 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

Estou tentando configurar uma montagem sem senha de um servidor remoto usando sshfs e fusível. O servidor remoto está sendo executado em uma porta não padrão e eu usarei um par de chaves ssh para autenticar.

Quando for bem-sucedido, repetirei isso para mais três servidores remotos, cada um com chaves diferentes, para que eu precise especificar quais mapas de chave para qual servidor remoto.

Baseei minhas modificações neste tutorial

  • A chave pública está no controle remoto: allowed_keys
  • Eu adicionei meu usuário local ao fusegrupo.
  • Editei meu local ~/.ssh/configpara ter (por servidor):

`

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

`

Sempre que tento montar o servidor remoto localmente, sou solicitada a senha do usuário remoto (não a senha da minha chave privada). O usuário remoto tem uma senha longa gerada aleatoriamente que eu gostaria de não precisar salvar ou lembrar e, portanto, o segredo é como eu quero fazer isso.

Posso conectar-me através do ssh (combinado com o ~/.ssh/configarquivo) usando o comando, ssh [ip]para que eu saiba que o arquivo de configuração pode ser lido corretamente, pois me pedem a senha da minha chave e não o usuário remoto.

Para tentar me conectar ao servidor remoto, preciso especificar manualmente os detalhes completos da conexão no comando: `sshfs [user] @ [ip]: [remote_path] [local_path] -p [port]

O que eu tentei até agora:

  • ssh-add / path / to / key (adição bem-sucedida)
  • Especificando PreferredAuthentication = publickeyem ~ / .ssh / config
  • sshfs -o IdentityFile = / caminho / para / usuário-chave @ ip: / / my / mnt / dir
  • usuário sshfs @ ip: / / my / mnt / dir -o IdentityFile = / path / to / key
  • renomeação temporária da chave para o padrão de id_rsa
  • sshfs -F ~ / .ssh / config

Existe um arquivo de configuração local ou remoto que estou ignorando? Alguma opção ou opção que eu preciso incluir na chamada para sshfs (tentei -F) para forçá-lo a ler e usar minha configuração de ssh?

Saída de ssh -v -p [port] [user]@[remote_ip]

OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 de maio de 2012
debug1: Lendo dados de configuração /home/[meunette/.ssh/config
debug1: /home/[meunette/.ssh/config linha 2: Aplicando opções para [remote_ip]
debug1: /home/[meunette/.ssh/config linha 24: Aplicando opções para *
debug1: Lendo dados de configuração / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config linha 19: Aplicando opções para *
debug1: Conectando-se à [remote_ip] [[remote_ip]] port [port].
debug1: conexão estabelecida.
debug1: arquivo de identidade /home/[meunette/.ssh/[private_key] tipo 2
debug1: Verificando o arquivo da lista negra /usr/share/ssh/blacklist.DSA-1024
debug1: Verificando o arquivo da lista negra /etc/ssh/blacklist.DSA-1024
debug1: arquivo de identidade /home/[meunette/.ssh/[private_keyunette-cert type -1
debug1: Protocolo remoto versão 2.0, versão de software remoto OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5 *
debug1: Ativando o modo de compatibilidade para o protocolo 2.0
debug1: Versão local string SSH-2.0-OpenSSH_6.1p1 Debian-4
debug1: SSH2_MSG_KEXINIT enviado
debug1: SSH2_MSG_KEXINIT recebido
debug1: kex: server-> client aes128-ctr hmac-md5 [email protected]
debug1: kex: client-> server aes128-ctr hmac-md5 [email protected]
debug1: enviando SSH2_MSG_KEX_ECDH_INIT
debug1: esperando SSH2_MSG_KEX_ECDH_REPLY
debug1: Chave do host do servidor: [key]
debug1: verificando sem identificador de porta
debug1: O host '[remote_ip]' é conhecido e corresponde à chave do host ECDSA.
debug1: chave encontrada em /home/[meunette/.ssh/known_hosts:7
debug1: chave correspondente encontrada sem porta
debug1: ssh_ecdsa_verify: assinatura correta
debug1: SSH2_MSG_NEWKEYS enviado
debug1: esperando SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS recebido
debug1: Roaming não permitido pelo servidor
debug1: SSH2_MSG_SERVICE_REQUEST enviado
debug1: SSH2_MSG_SERVICE_ACCEPT recebido
debug1: autenticações que podem continuar: publickey, password
debug1: Próximo método de autenticação: publickey
debug1: oferecendo a chave pública do DSA: /home/[meunette/.ssh/[private_key]
debug1: O servidor aceita a chave: pkalg ssh-dss blen 433
debug1: Ativando a compactação no nível 6.
debug1: autenticação bem-sucedida (chave pública).
Autenticado em [remote_ip] ([[remote_ip]]: [port]).
debug1: canal 0: novo [sessão do cliente]
debug1: Solicitando [email protected]
debug1: Entrando na sessão interativa.
debug1: Enviando ambiente.
debug1: Env env env LANG = pt_BR.UTF-8
debug1: Env Env env LC_CTYPE = en_GB.UTF-8
Bem-vindo ao Ubuntu 12.04.3 LTS (GNU / Linux 3.10.9-xxxx-std-ipv6-64 x86_64)

Edit:
Encontrei o problema. Eu estava tentando montar o local remoto em / mnt / new_dir usando o sudo. Se eu montar em um local dentro da minha casa local, ele funcionará. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount.

Eu já fiz um sudo chown root:fuse /mnt/new_dire sudo chmod 774 /mnt/new_diracredito que tudo está funcionando como pretendido.

Há algum problema de segurança com essa configuração que eu precise estar ciente? (Meu próprio usuário e raiz são os únicos membros do fusegrupo.

indivisível
fonte
Oi MBS, você pode executar o ssh com a opção -v para mostrar os erros que possam estar presentes. pode valer a pena fazer isso para verificar se há um erro ao ler o arquivo. Além disso, suas chaves no servidor de destino devem ter 600 permissões.
RQomey #
Obrigado pela resposta rápida. ssh detalhado: pastebin.com/Rm5X7y5p (eu vou voltar com os sshfs detalhado em um min
indivisível
sshfs usando o -o ssh_command='ssh -v'comando só trava e não mostra nada
indivisível
Acho que posso ter encontrado o problema (ou pelo menos ter chegado mais perto dele). Eu estava tentando montar o local remoto em / mnt / new_dir usando o sudo. Se eu montar em um local dentro da minha casa local, ele funcionará. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount. Posso configurar meu usuário para que ele tenha as permissões necessárias para montar em / mnt, para que outros usuários possam usar os recursos remotos?
indivisível
1
Vejo que você é novo na stackexchange, então seja bem-vindo. Mas algumas dicas: eu sei que você gostaria de tentar anonimizar-se obscurecendo os dados, mas você realmente não deveria. Se você tivesse fornecido essas informações indicando onde estava montando a montagem, outras pessoas teriam notado o problema. Além disso, não crie links para sites externos (pastebin) para fornecer saída, inclua-a aqui. Por fim, se você tiver uma solução, forneça-a como resposta e aceite-a, não coloque "resolvido" no assunto.
22413 Patrick

Respostas:

12

Se você estiver usando sudo, provavelmente usará as credenciais do root para montar, o que não acredito que seja o que você deseja. Eu provavelmente não faria o que você está pedindo, errado. montagem para /mntcomo user1 e acesso como user2. Vai ficar complicado com grupos e permissões de usuário. Se você realmente deseja montar um diretório no / mnt para compartilhar, você realmente deve montá-lo através do nível do sistema para todos os usuários autofs.

Automontagem

Existem três métodos que eu conheço para montar automaticamente uma montagem como essa.

slm
fonte
Esse era exatamente o problema. Editei minha pergunta para incluir as etapas que eu segui para modificar as permissões da pasta em questão, mas enquanto ela funciona, tenho certeza de que não é a melhor solução. - Eu não tinha tentado usar autofsainda, pois não era possível estabelecer a conexão sshfs antes. Você está sugerindo que eu adicione outro par de chaves a local:/root/.ssh/keye remote:/[user]/.ssh/authorized_keys? O que deve ser chowne chmodser para local:/mnt/dirser? (Eu quero perms cheios para mim e somente leitura para outros usuários)
indivisível
@mbs - ver atualizações
slm
1
Esse URL para autofs, está correto? Porque parece incorreto quando você solicita. Mostra esportes em uma linguagem não inglesa.
Geoffrey Anderson