Transferir ficheiros para um VPS Linux com o FileZilla (SFTP)

3 min
Alojamento VPS/VDS

O SFTP funciona dentro da sua ligação SSH existente, por isso não precisa de software adicional no servidor nem de outra porta. Num VPS Linux Infrawire é a forma mais segura de enviar um site ou obter cópias de segurança com um cliente gráfico como o FileZilla. Este guia cobre o acesso por palavra-passe e por chave, as permissões dos ficheiros e um utilizador limitado a SFTP.

📋 Pré-requisitos

  • Um VPS Linux (Ubuntu 24.04, Debian 12, AlmaLinux 9 ou Rocky 9) com SSH a funcionar na porta 22.
  • O IP do VPS e a palavra-passe de root, disponíveis na sua área de cliente.
  • O FileZilla Client instalado no seu computador (o Client, não o FileZilla Server).

1. Ligar rapidamente com palavra-passe

Para um primeiro teste, use a barra de ligação rápida no topo do FileZilla:

  • Servidor: sftp://VPS_IP
  • Utilizador: USER
  • Palavra-passe: a sua palavra-passe
  • Porta: 22

Aceite a chave do host na primeira vez. O painel da direita mostra a árvore de ficheiros do servidor. Prefira um utilizador normal a root: um clique errado faz menos estragos.

Bash
adduser USER usermod -aG sudo USER

No AlmaLinux ou Rocky use useradd -m USER, passwd USER e usermod -aG wheel USER.

2. Iniciar sessão com uma chave SSH

As chaves são mais seguras do que as palavras-passe e não podem ser descobertas por força bruta. No seu computador, gere um par de chaves e copie a parte pública para o servidor.

Bash
ssh-keygen -t ed25519 -C "filezilla" ssh-copy-id USER@VPS_IP

No FileZilla abra Editar > Definições > Ligação > SFTP > Adicionar ficheiro de chave e escolha a sua chave privada (o ficheiro sem .pub). O FileZilla pode propor convertê-la para o seu formato; aceite. Nunca partilhe a chave privada.

3. Guardar a ligação no Gestor de sites

  1. Abra Ficheiro > Gestor de sites e clique em Novo site.
  2. Protocolo: SFTP - SSH File Transfer Protocol.
  3. Servidor: VPS_IP, Porta: 22.
  4. Tipo de início de sessão: Normal para palavra-passe, ou Ficheiro de chave para uma chave.
  5. Utilizador: USER. No separador Avançado defina a pasta remota por omissão, por exemplo /var/www/example.com.
  6. Clique em Ligar. O site fica guardado para a próxima vez.

Evite guardar palavras-passe num computador que não controla.

4. Definir proprietário e permissões dos ficheiros web

Os ficheiros enviados ficam muitas vezes com o proprietário errado, o que causa erros 403 ou 500. Atribua a pasta web ao seu utilizador e deixe o servidor web lê-la.

Bash
mkdir -p /var/www/example.com chown -R USER:www-data /var/www/example.com find /var/www/example.com -type d -exec chmod 755 {} \; find /var/www/example.com -type f -exec chmod 644 {} \;

No AlmaLinux e Rocky o grupo do servidor web é apache em vez de www-data. As pastas onde a aplicação tem de escrever (uploads, cache) podem ficar em 775, com o grupo do servidor web como grupo proprietário. Nunca use chmod -R 777. No FileZilla pode também clicar com o botão direito num ficheiro e escolher Permissões do ficheiro.

5. Opcional: um utilizador só de SFTP preso numa pasta

Para dar a um cliente acesso a uma única pasta sem shell, use um chroot. A própria pasta chroot tem de pertencer a root e não ser gravável por mais ninguém; caso contrário o sshd recusa o início de sessão.

Bash
groupadd sftpusers useradd -M -d /files -s /usr/sbin/nologin -G sftpusers CLIENT passwd CLIENT mkdir -p /var/sftp/CLIENT/files chown root:root /var/sftp/CLIENT chmod 755 /var/sftp/CLIENT chown CLIENT:CLIENT /var/sftp/CLIENT/files

Acrescente este bloco ao fim de /etc/ssh/sshd_config:

INI
1Match Group sftpusers 2 ChrootDirectory /var/sftp/%u 3 ForceCommand internal-sftp 4 AllowTcpForwarding no 5 X11Forwarding no

Teste a sintaxe antes de recarregar e mantenha a sessão SSH atual aberta até confirmar que um novo início de sessão funciona.

Bash
sshd -t systemctl reload ssh

O serviço chama-se ssh no Ubuntu e Debian, e sshd no AlmaLinux e Rocky. O utilizador restrito entra em /files e não vê mais nada.

Verificação

Teste num terminal antes de culpar o FileZilla:

Bash
sftp USER@VPS_IP sftp> pwd sftp> put test.txt sftp> ls -l

Depois envie um ficheiro com o FileZilla e verifique o proprietário com ls -l /var/www/example.com.

Resolução de problemas

  • Ligação recusada ou tempo esgotado: confirme que o sshd está ativo (systemctl status ssh), que a porta está aberta na firewall e que escolheu SFTP, não FTP.
  • Permission denied (publickey): a chave não está em ~/.ssh/authorized_keys ou as permissões estão erradas. Corrija com chmod 700 ~/.ssh e chmod 600 ~/.ssh/authorized_keys.
  • Utilizador em chroot desligado logo após entrar: a pasta chroot não pertence a root ou é gravável pelo grupo. Procure «bad ownership or modes for chroot directory» em journalctl -u ssh.
  • Não consegue enviar, permissão negada numa pasta: o utilizador não é dono do destino. Repita os comandos chown e chmod do passo 4.

✅ Já pode mover ficheiros em segurança para o seu VPS Linux com o FileZilla.

Fique a par das últimas ofertas, descontos e promoções especiais.

Ver promoções

Utilizamos cookies

Utilizamos cookies analíticos para melhorar a sua experiência no nosso site. Nenhum dado é vendido a terceiros. Saiba mais na nossa política de privacidade.