Powrót do bloga
Maj 23, 2026Poradniki

Jak skonfigurować SFTP do bezpiecznego transferu plików

Transfer plików przez SFTP w OpenSSH: osobni użytkownicy, izolacja katalogu, połączenie z FileZilla i WinSCP.

Jak skonfigurować SFTP do bezpiecznego transferu plików

SFTP przesyła pliki przez szyfrowane SSH bez osobnego demona FTP. Na Linux VPS SFTP jest wbudowany w OpenSSH — bezpieczna konfiguracja na Hiddence.

SFTP z dedykowanym użytkownikiem

Utwórz użytkownika tylko do przesyłania plików:

bash
sudo adduser sftpuser
sudo passwd sftpuser

# Test SFTP from client:
sftp sftpuser@YOUR_VPS_IP

# Or use FileZilla: Protocol SFTP, port 22

Izolacja katalogu (chroot), zalecane

Ogranicz użytkownika do jednego folderu na serwerze:

bash
sudo mkdir -p /var/sftp/sftpuser/upload
sudo chown root:root /var/sftp/sftpuser
sudo chmod 755 /var/sftp/sftpuser
sudo chown sftpuser:sftpuser /var/sftp/sftpuser/upload

sudo nano /etc/ssh/sshd_config

# Add at end:
Match User sftpuser
    ChrootDirectory /var/sftp/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

sudo systemctl restart sshd

Połączenie z komputera

Popularne klienty obsługują SFTP:

  • FileZilla — Host: sftp://YOUR_VPS_IP, Port: 22, Logon Type: Normal
  • WinSCP — Protocol: SFTP
  • macOS Finder — Connect to Server: sftp://user@IP
  • Linux: sftp user@IP or scp file user@IP:/path/
  • VS Code — Remote SSH extension for direct editing

Bezpieczeństwo

  • Klucze SSH zamiast haseł dla SFTP
  • Nie udostępniaj root przez SFTP osobom trzecim
  • Wyłącz logowanie hasłem dla root w sshd_config
  • Dla kont „tylko upload” użyj chroot jak w przykładzie
  • Zainstaluj Fail2ban na SSH
  • W razie możliwości otwórz port 22 tylko z zaufanych IP

Wskazówki

  • SFTP to nie FTP — port 21 nie jest potrzebny
  • Dla WordPress wygodniejszy jest deploy przez SSH lub rsync
  • rsync przez SSH jest szybszy przy dużych migracjach
  • Przy błędzie uploadu sprawdź uprawnienia 755/644
  • Po zmianach sshd_config trzymaj drugą sesję SSH otwartą