gvfs-mount auto password

1

Eu gostaria de fazer atalhos para montagens gvfs (eu prefiro montar a partir do shell). Para isso, é absolutamente necessário / conveniente não ter que digitar a senha para as conexões ftp:// e sftp:// . Atualmente, a única maneira que conheço é:

echo 12345 | gvfs-mount sftp://[email protected]/

Embora eu possa tornar os direitos do arquivo 700 (ou mesmo 100 ), não tenho certeza se é razoavelmente seguro. É pior que .netrc itens? Eu sei sobre ssh-copy-id , mas não consigo acessar o shell na maioria dos meus sftp servidores.

Existe uma alternativa melhor (padrão) à minha abordagem? O que nautilus / caja faz quando armazenam as senhas?

    
por yo' 31.03.2014 / 15:16

2 respostas

1

Você pode usar algo como expect para fornecer as credenciais sempre que quiser se conectar. Não é super seguro, mas dá o que você quer.

#!/usr/local/bin/expect --
set timeout -1
spawn gvfs-mount {args}
expect "User"
send "joe\n"
expect "Password:"
send "xxxxx\n"
expect eof

Fonte: gvfs-mount especifica a senha do nome de usuário

    
por 01.04.2014 / 04:52
2

Sou como você, gosto de montar / desmontar meus sistemas de arquivos na linha de comando.

Sobre a opção stdin

I'm not sure if it's reasonably safe. Is it worse than .netrc items?

Você deve estar ciente de que, em muitos sistemas, os nomes de processos e os argumentos da linha de comando ficam visíveis para todos os usuários. No Linux, por exemplo, faça grep -a . /proc/*/cmdline para ver todos eles.

Dito isso, em alguns shells, incluindo o bash, echo é um comando interno, portanto, nenhum processo é iniciado.

Então, até onde eu sei, não deve ser pior do que .netrc . Verifique as suas permissões de arquivo em qualquer caso.

SFTP

Você pode ter gvfs-mount sftp://somehost/somepath sem senha. (Eu apenas testei isso com sucesso.)

A solução recomendada é usar a autenticação baseada em chave, não armazenar nenhuma senha em lugar algum.

Por exemplo, veja autenticação - Como posso configurar o login SSH sem senha? - Pergunte ao Ubuntu e maneira mais fácil copiar chaves ssh para outra maquina? - Pergunte ao Ubuntu (é escrito para o Ubuntu, mas funciona da mesma forma para outros Unices).

I know about ssh-copy-id, but I can't access shell on most of my sftp servers.

ssh-copy-id é apenas um atalho útil. Você não precisa de acesso ao shell para definir a autenticação baseada em chave, mas precisa acessar o diretório home.

Se você puder acessar seus arquivos de forma interativa com o SFTP, provavelmente será possível configurar ~/.ssh/ e ~/.ssh/authorized_keys , a menos que o administrador tenha evitado isso com cuidado, mas isso seria um tiro em seus pés. Na verdade, o administrador deve incentivar os usuários a configurar a autenticação baseada em chave. Verifique qual é a política com eles.

Se você precisar apenas configurar apenas uma chave, basta copiar o arquivo-chave público (não particular) gerado acima (possivelmente ~/.ssh/id_rsa.pub ) para um arquivo remoto no diretório .ssh chamado authorized_keys e permissão de permissão 600 (leitura-escrita para você, nada para os outros).

FTP

Com relação aos URLs FTP, a resposta tradicional é usar um ~/.netrc como explicado, por exemplo, no link .

Infelizmente, funciona muito bem com um zillion de clientes ftp, antigos e novos, incluindo curlftpfs , mas (no Ubuntu 14.04 pelo menos) gvfsmount o ignora.

Talvez curlftpfs seja adequado ao seu caso de uso. A principal diferença é que você escolhe seu ponto de montagem em vez de ter gvfs-mount compute one.

curlftpfs ftp://host/ ~/mymountpoint

SFTP, novamente

Se você gostar da opção curlftpfs , considere as URLs do sftp,

sshfs host:/some/remote/path ~/myothermountpoint

E se for questionado se o sshfs precisa de acesso ao shell, a Wikipedia diz: O cliente interage com o sistema de arquivos remoto através do Protocolo de Transferência de Arquivos SSH ( SFTP), [2]

Uma palavra final: para ferramentas que precisam de um ponto de montagem explícito, pense em criar um diretório vazio primeiro no caminho correto. E se você estiver tentando várias vezes ou alterar opções, lembre-se de fusermount -u somepath para desmontar antes de tentar montá-lo novamente.

    
por 08.06.2014 / 21:36