Jak naprawić błąd „Brak takiego pliku lub katalogu” w SCP?

SCP to skrót od Secure Copy Protocol i jest oparty na protokole „Secure Shell”. Zapewnia metodę przesyłania plików między komputerami. W tym transferze oba komputery mogą być hostami zdalnymi lub jeden komputer może być hostem lokalnym, a drugi hostem zdalnym. Całkiem niedawno wielu użytkowników otrzymało błąd „ Brak takiego pliku lub katalogu ” podczas próby kopiowania plików za pomocą SCP.

W tym artykule omówimy niektóre przyczyny, dla których pojawia się ten problem, a także przedstawimy realne rozwiązania, które całkowicie go naprawią. Przyjrzymy się również niektórym powodom, dla których jest uruchamiany. Upewnij się, że postępujesz zgodnie z instrukcją ostrożnie i dokładnie, aby uniknąć konfliktu.

Co powoduje błąd „Brak takiego pliku lub katalogu” w SCP?

Po otrzymaniu wielu zgłoszeń od wielu użytkowników zdecydowaliśmy się zbadać problem i opracować zestaw rozwiązań, aby całkowicie go naprawić. Przyjrzeliśmy się również powodom, dla których jest uruchamiany, i wymieniliśmy je w następujący sposób.

  • Niepoprawne polecenie: w  niektórych przypadkach polecenie używane przez użytkownika do kopiowania pliku może być nieprawidłowe. Musisz zmodyfikować polecenie kopiowania, aby pasowało do bieżącej sytuacji, w której kopiujesz. Polecenia do kopiowania plików i całego katalogu są różne. Ponadto polecenie kopiowania między dwoma komputerami o różnych konfiguracjach jest zmieniane zgodnie z wymaganiami.
  • Numer portu:  Możliwe jest również, że nie określono numeru portu do kopiowania plików między komputerami. Przed próbą skopiowania plików między dwoma hostami należy przekierować prawidłowy port.
  • Nieprawidłowe logowanie: jeśli jesteś aktualnie zalogowany na serwerze i próbujesz skopiować pliki na pulpit, możesz napotkać ten błąd, ponieważ serwer próbuje znaleźć lokalną ścieżkę na serwerze. Można temu zapobiec, wylogowując się ze ścieżki serwera.
  • Uprawnienia do plików:  W niektórych przypadkach uprawnienia do plików, które mają zostać skopiowane, mogą być ograniczone do „Tylko do odczytu”. Może to uniemożliwić serwerowi dostęp do plików i możliwość ich kopiowania. Ważne jest, aby pliki miały uprawnienia do odczytu i zapisu.

Teraz, gdy masz już podstawową wiedzę na temat natury problemu, przejdziemy do rozwiązań. Upewnij się, że wdrażasz je w określonej kolejności, w której są przedstawione, aby uniknąć konfliktu.

Rozwiązanie 1: Używanie poprawnych poleceń

W zależności od konfiguracji hostów, między którymi chcesz przesłać pliki, musisz użyć właściwego polecenia. W tym celu wymienimy niektóre polecenia, których można użyć do przesyłania plików między różnymi konfiguracjami hostów.

Kopiowanie z hosta lokalnego do hosta zdalnego

Lokalny host to rzeczywisty komputer, do którego masz fizyczny dostęp. Host zdalny to ten, do którego użytkownik nie ma fizycznego dostępu i znajduje się na odległym serwerze. Aby przesłać pliki z hosta lokalnego do hosta zdalnego, musisz użyć następujących konfiguracji poleceń.

$ scp "the_file" twoja_nazwa_użytkownika @ the_remote_host: / ścieżka / do / katalogu /

Przykład kopiowania pliku tekstowego o nazwie „ Alexa.txt ” będzie następujący.

$ scp Alexa.txt twoja_nazwa_uż[email protected]: / jakiś / zdalny / katalog

W ten sam sposób możesz skopiować cały katalog w następujący sposób

$ scp -r "the_directory_to_copy" twoja_nazwa_użytkownika @ the_remote_host: / ścieżka / do / katalogu / do / kopiuj / do

Przykład kopiowania katalogu o nazwie „ Alexa ” wyglądałby następująco.

$ scp -r foo twoja_nazwa_uż[email protected]: / some / remote / directory / bar

Kopiowanie z hosta zdalnego do hosta lokalnego

Jeśli chcesz skopiować plik z hosta zdalnego do hosta lokalnego, konfiguracje poleceń różnią się od oryginalnych. Poniżej przedstawiono odpowiednie polecenia do kopiowania plików między hostem zdalnym a hostem lokalnym.

Aby skopiować plik, użyj następującego polecenia

$ scp twoja_nazwa_użytkownika @ the_remote_host: the_file / your / local / directory

Aby skopiować plik o nazwie „ Alexa . txt ”, użyj następujących poleceń

$ scp twoja_nazwa_użytkownika @ the_remote_host: Alexa.txt / twój / lokalny / katalog

Rozwiązanie 2: Identyfikacja numeru portu

Numer portu zdalnego hosta musi zostać zidentyfikowany przed skopiowaniem pliku na komputer. W tym celu będziemy dodawać numer portu podczas inicjowania procesu kopiowania.

Możesz użyć następującego polecenia, aby kopiować między komputerami, wskazując numer portu .

$ scp -P numer_portu twoja_nazwa_użytkownika @ the_remote_host: the_file / your / local / directory

Tego samego polecenia można użyć do wskazania numeru portu podczas kopiowania do lub ze zdalnego hosta. Wystarczy dodać „ -P (numer portu) ” po części „ $ scp ” polecenia.

Rozwiązanie 3: Zmiana uprawnień

Podczas kopiowania plików między komputerami należy nadać plikowi odpowiednie uprawnienia. Dlatego w tym kroku będziemy wskazywać proces zmiany uprawnień do pliku. Za to:

  1. Prawo - kliknij na plik, który próbujesz skopiować.
  2. Kliknij „ Właściwości ” i wybierz zakładkę „ Bezpieczeństwo ”.
  3. Upewnij się, że wszystkie uprawnienia są nadane „ Systemowi ” i „ Administratorowi ”.

Uwaga:  upewnij się również, że nie logujesz się do ścieżki serwera podczas kopiowania plików.