julho 26, 2019

Acessando arquivos remotos via SSH e FTP com o Geany

Nativamente, o Geany não possui nenhum recurso interno para realizar conexões e montar locais remotos via SSH ou FTP. Para isso, ele conta com ferramentas existentes do sistema para montar sistemas de arquivos remotos, como FUSE, GVFS e GIO. Neste artigo, nós veremos como montar sistemas de arquivos remotos via SSH e FTP utilizando duas dessas ferramentas: sshfs e gio.

1. Montando sistemas de arquivos SSH com o 'sshfs'

No Debian, o sshfs não vem instalado por padrão, mas isso é fácil de resolver com o comando...

sudo apt install sshfs

O motivo de escolhermos o sshfs é que ele permite a montagem do sistema remoto na sua pasta pessoal, em qualquer pasta previamente existente. Para efeito de exemplificação, aqui nós vamos criar uma pasta chamada .remote, que será o nosso ponto de montagem.

mkdir ~/.remote

Em seguida, nós vamos realizar a conexão e a montagem utilizando o sshfs, e isso pode ser feito de "dentro" do terminal embutido do Geany.

Pronto, o sistema de arquivos remoto foi montado na nossa pasta ~/.remote e nós já podemos trabalhar nela com o Geany! Na imagem, você pode ver que eu entrei na pasta e consegui criar e editar o arquivo teste.txt sem nenhum problema.

Quando terminar, basta sair da pasta ~/.remote e desmontar o sistema de arquivos remoto...

Simples assim!

2. Montando sistemas de arquivos FTP com o 'gio'

Até bem pouco tempo, era possível montar sistemas de arquivos FTP em pastas locais do usuário com o comando gvfs-mount. Atualmente, este método foi considerado obsoleto e substituído pelo comando gio mount. Isso tornou as coisas um pouco mais complicadas (como se trabalhar via FTP já não fosse complicado o bastante), mas bem mais seguras.

Infelizmente, graças a uma enorme carência de documentação decente, eu ainda não descobri o que instalar para ter o gio, mas a minha instalação do Debian é extremamete simples e mínima, e tudo que eu instalei que pode estar relacionado a isso foram os pacotes: gvfs-backends e gvfs-fuse (além do gerenciador de arquivos pcmanfm).

Mas, você pode verificar se o gio está instalado consultando sua própria ajuda sobre a montagem:

gio help mount

Se tudo ser certo, você verá uma lista de opções parecida com essa aqui:

$ gio help mount
Uso:
  gio mount [OPÇÃO…] [LOCAL…]

Monta ou desmontar os locais.

Opções:
  -m, --mountable                  Monta como montável
  -d, --device=DISPOSITIVO         Monta o volume com o arquivo de dispositivo
  -u, --unmount                    Desmonta
  -e, --eject                      Ejeta
  -t, --stop=DISPOSITIVO           Interrompe o volume com o arquivo de dispositivo
  -s, --unmount-scheme=ESQUEMA     Desmonta todas montagens com o esquema dado
  -f, --force                      Ignora operações pendentes de arquivos ao desmontar ou ejetar
  -a, --anonymous                  Usa um usuário anônimo ao autenticar
  -l, --list                       Lista
  -o, --monitor                    Monitora eventos
  -i, --detail                     Mostra informações extras
  --tcrypt-pim=PIM                 O PIM numérico ao desbloquear um volume VeraCrypt
  --tcrypt-hidden                  Mota um volume TCRYPT oculto
  --tcrypt-system                  Mota um volume TCRYPT de sistema

Então, vamos logo ao ponto. Para conectar com o seu host FTP, basta executar o seguinte comando (como usuário normal):

gio mount ftp://seu_nome_de_usuario_ftp@seu_host_ftp

Na imagem, eu me conectei ao servidor ftpupload.net com o nome de usuário b3_24065249...

A conexão em si não é um problema, a grande dificuldade é saber onde está o ponto de montagem. Por padrão, o gio irá montar o sistema de arquivos FTP em um endereço do dbus. Lembra daquele artigo sobre usar o notify-send com o cron? Pois é, a ideia é a mesma.

Para entrar no ponto de montagem, você vai precisar executar o comando:

cd "/run/user/$(id -u)/gvfs/ftp:seu_host_de_ftp,user:seu_nome_de_usuário_ftp"

É um comando complicado, mas nada que não se resolva com um alias ou um pequeno shell script.

Estando no ponto de montagem, basta começar a trabalhar...

Terminado o trabalho (que deve ter sido sofrido com a velocidade do FTP), basta fechar os arquivos, sair do ponto de montagem e desmontá-lo:

Considerações finais e outras alternativas

A forma mais simples de criar e editar arquivos remotos ainda é fazendo a conexão através do seu gerenciador de arquivos, onde ele mesmo se encarrega por fazer todo o processo de montagem e desmontagem, cabendo a você apenas o trabalho de clicar nos arquivos e mandar abrir com o Geany. Porém, nem sempre a forma mais simples é a mais prática e eficiente.

Em ambos os procedimentos que eu mostrei, os pontos de montagens ainda serão vistos pelo seu gerenciador de arquivos e você ainda pode trabalhar com ele, mas... por que fazer isso tendo um terminal à sua disposição dentro da sua IDE?

Como nota final, é interessante lembrar que esses métodos diferem das conexões usando servidores/clientes de SSH e FTP via terminal, já que, na prática, você continua operando na sua máquina tendo acesso aos seus programas e ferramentas, e não na máquina remota contando apenas com o que existir por lá.

Dúvidas? Correções? Outras ideias?

Fique à vontade para comentar!

Nenhum comentário:

Postar um comentário

O sistema de comentários do Blogspot é um lixo e praticamente me obriga a liberar ou moderar todos os comentários. Portanto, eu peço perdão antecipadamente caso o seu comentário demore para aparecer.

Mas não se acanhe por causa disso! :-)