Polski

Przesyłanie plików na VPS z Linuxem przez FileZilla (SFTP)

3 min
Hosting VPS/VDS

SFTP działa w ramach istniejącego połączenia SSH, więc nie wymaga dodatkowego oprogramowania na serwerze ani kolejnego portu. Na VPS Linux Infrawire to najbezpieczniejszy sposób wysyłania strony lub pobierania kopii zapasowych w graficznym kliencie takim jak FileZilla. Poradnik obejmuje logowanie hasłem i kluczem, uprawnienia plików oraz użytkownika ograniczonego do SFTP.

📋 Wymagania wstępne

  • VPS z Linuxem (Ubuntu 24.04, Debian 12, AlmaLinux 9 lub Rocky 9) z działającym SSH na porcie 22.
  • Adres IP VPS i hasło roota z panelu klienta.
  • FileZilla Client zainstalowany na komputerze (Client, a nie FileZilla Server).

1. Szybkie połączenie hasłem

Na pierwszy test użyj paska szybkiego łączenia u góry FileZilli:

  • Host: sftp://VPS_IP
  • Nazwa użytkownika: USER
  • Hasło: Twoje hasło
  • Port: 22

Przy pierwszym połączeniu zaakceptuj klucz hosta. Prawy panel pokazuje drzewo plików serwera. Lepiej używać zwykłego użytkownika niż roota: błędne kliknięcie zrobi mniej szkód.

Bash
adduser USER usermod -aG sudo USER

Na AlmaLinux lub Rocky użyj useradd -m USER, passwd USER i usermod -aG wheel USER.

2. Logowanie kluczem SSH

Klucze są bezpieczniejsze niż hasła i nie da się ich złamać atakiem brute-force. Na swoim komputerze wygeneruj parę kluczy i skopiuj część publiczną na serwer.

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

W FileZilli otwórz Edycja > Ustawienia > Połączenie > SFTP > Dodaj plik z kluczem i wskaż swój klucz prywatny (plik bez .pub). FileZilla może zaproponować konwersję do własnego formatu; zaakceptuj. Nigdy nie udostępniaj klucza prywatnego.

3. Zapisanie połączenia w Menedżerze witryn

  1. Otwórz Plik > Menedżer witryn i kliknij Nowa witryna.
  2. Protokół: SFTP - SSH File Transfer Protocol.
  3. Host: VPS_IP, Port: 22.
  4. Typ logowania: Zwykły dla hasła lub Plik klucza dla klucza.
  5. Użytkownik: USER. Na karcie Zaawansowane ustaw domyślny katalog zdalny, na przykład /var/www/example.com.
  6. Kliknij Połącz. Witryna zostanie zapamiętana na przyszłość.

Nie zapisuj haseł na komputerze, którego nie kontrolujesz.

4. Ustawienie właściciela i uprawnień plików WWW

Wysłane pliki często mają złego właściciela, co powoduje błędy 403 lub 500. Przekaż katalog WWW swojemu użytkownikowi i pozwól serwerowi WWW go odczytywać.

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 {} \;

Na AlmaLinux i Rocky grupa serwera WWW to apache zamiast www-data. Katalogi, do których aplikacja musi zapisywać (uploady, cache), można ustawić na 775, z grupą serwera WWW jako grupą właściciela. Nigdy nie używaj chmod -R 777. W FileZilli możesz też kliknąć plik prawym przyciskiem i wybrać Uprawnienia pliku.

5. Opcjonalnie: użytkownik tylko SFTP zamknięty w katalogu

By dać klientowi dostęp tylko do jednego katalogu bez powłoki, użyj chroot. Sam katalog chroot musi należeć do roota i nie może być zapisywalny dla nikogo innego, inaczej sshd odrzuci logowanie.

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

Dopisz ten blok na końcu /etc/ssh/sshd_config:

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

Przed przeładowaniem sprawdź składnię i nie zamykaj bieżącej sesji SSH, dopóki nie potwierdzisz, że nowe logowanie działa.

Bash
sshd -t systemctl reload ssh

Usługa nazywa się ssh na Ubuntu i Debianie oraz sshd na AlmaLinux i Rocky. Ograniczony użytkownik trafia do /files i nie widzi niczego więcej.

Weryfikacja

Przetestuj w terminalu, zanim obwinisz FileZillę:

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

Następnie wyślij plik przez FileZillę i sprawdź jego właściciela poleceniem ls -l /var/www/example.com.

Rozwiązywanie problemów

  • Połączenie odrzucone lub przekroczony czas: sprawdź, czy sshd działa (systemctl status ssh), czy port jest otwarty w zaporze i czy wybrano SFTP, a nie FTP.
  • Permission denied (publickey): klucza nie ma w ~/.ssh/authorized_keys albo uprawnienia są złe. Napraw przez chmod 700 ~/.ssh i chmod 600 ~/.ssh/authorized_keys.
  • Użytkownik w chroot rozłączany zaraz po zalogowaniu: katalog chroot nie należy do roota lub jest zapisywalny dla grupy. Szukaj „bad ownership or modes for chroot directory” w journalctl -u ssh.
  • Nie można wysłać pliku, brak uprawnień do katalogu: użytkownik nie jest właścicielem celu. Powtórz polecenia chown i chmod z kroku 4.

✅ Możesz już bezpiecznie przesyłać pliki na swój VPS z Linuxem przez FileZillę.

Bądź na bieżąco z najnowszymi ofertami, zniżkami i promocjami specjalnymi.

Zobacz promocje

Używamy plików cookie

Używamy plików cookie analitycznych, aby ulepszać nasz serwis. Nie sprzedajemy danych stronom trzecim. Więcej w polityce prywatności.