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
fuse
grupo. - Editei meu local
~/.ssh/config
para 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/config
arquivo) 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 = publickey
em ~ / .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_dir
e sudo chmod 774 /mnt/new_dir
acredito 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 fuse
grupo.
fonte
-o ssh_command='ssh -v'
comando só trava e não mostra nadasshfs -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?Respostas:
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/mnt
como 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áriosautofs
.Automontagem
Existem três métodos que eu conheço para montar automaticamente uma montagem como essa.
fonte
autofs
ainda, pois não era possível estabelecer a conexão sshfs antes. Você está sugerindo que eu adicione outro par de chaves alocal:/root/.ssh/key
eremote:/[user]/.ssh/authorized_keys
? O que deve serchown
echmod
ser paralocal:/mnt/dir
ser? (Eu quero perms cheios para mim e somente leitura para outros usuários)