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 bem sucedido, estarei repetindo isso para mais três servidores remotos, cada um com chaves diferentes, então eu preciso ser capaz de especificar quais mapas de chaves para qual servidor remoto.
Eu baseei minhas modificações em este tutorial
- A chave pública está no controle remoto: authorized_keys
- Eu adicionei meu usuário local ao grupo
fuse
.
- Eu editei meu local
~/.ssh/config
para ter (por servidor):
'
Host [server_ip]
Port = [port]
IdentityFile = "~/.ssh/[private_key]"
User = "[user]"
'
Sempre que eu tento montar o servidor remoto localmente, sou solicitado a fornecer a senha do usuário remoto (não a senha da minha chave privada). O usuário remoto tem uma longa senha gerada aleatoriamente que eu gostaria de não ter que salvar ou lembrar e assim as chaves é como eu quero fazer isso.
Eu posso conectar-me por meio do ssh (combinado com o arquivo ~/.ssh/config
) usando o comando ssh [ip]
, então sei que o arquivo de configuração pode ser lido corretamente, como a senha não é do usuário remoto.
Para tentar conectar-se ao servidor remoto, tenho que especificar manualmente os detalhes completos da conexão no comando: 'sshfs [usuário] @ [ip]: [caminho_remoto] [caminho_local] -p [porta]
O que eu tentei até agora:
- ssh-add / caminho / para / 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 = / caminho / para / key
- renomeação temporária da chave para o padrão de
id_rsa
- sshfs -F ~ / .ssh / config
Existe um arquivo de configuração remota ou local que estou negligenciando? 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 ssh?
Saída de ssh -v -p [port] [user]@[remote_ip]
OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /home/[me]/.ssh/config
debug1: /home/[me]/.ssh/config line 2: Applying options for [remote_ip]
debug1: /home/[me]/.ssh/config line 24: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to [remote_ip] [[remote_ip]] port [port].
debug1: Connection established.
debug1: identity file /home/[me]/.ssh/[private_key] type 2
debug1: Checking blacklist file /usr/share/ssh/blacklist.DSA-1024
debug1: Checking blacklist file /etc/ssh/blacklist.DSA-1024
debug1: identity file /home/[me]/.ssh/[private_key]-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.1p1 Debian-4
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 [email protected]
debug1: kex: client->server aes128-ctr hmac-md5 [email protected]
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: [key]
debug1: checking without port identifier
debug1: Host '[remote_ip]' is known and matches the ECDSA host key.
debug1: Found key in /home/[me]/.ssh/known_hosts:7
debug1: found matching key w/out port
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /home/[me]/.ssh/[private_key]
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: Enabling compression at level 6.
debug1: Authentication succeeded (publickey).
Authenticated to [remote_ip] ([[remote_ip]]:[port]).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_GB.UTF-8
debug1: Sending env LC_CTYPE = en_GB.UTF-8
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.10.9-xxxx-std-ipv6-64 x86_64)
Editar:
Eu encontrei o problema. Eu estava tentando montar o local remoto para / mnt / new_dir usando o sudo. Se eu montar em um local dentro da minha casa local, então funciona. sshfs -p [port] [user]@[ip]:/ /home/[me]/tmp/mount
.
Eu já fiz sudo chown root:fuse /mnt/new_dir
e sudo chmod 774 /mnt/new_dir
e 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 root são os únicos membros do grupo fuse
.