Dobre pytanie. scpznowu, ale odwrotnie. Zrobiłem to i oto:
chris@local ~$ ls hos*
hosts
chris@local ~$ ssh remote
Last login: Fri Mar 8 15:52:25 2013 from local
chris@remote ~$ scp chris@local:hos* .
chris@local's password:
hosts 100% 1850 1.8KB/s 00:00
chris@remote ~$ ls hos*
hosts
chris@remote ~$
edytowane w celu dodania: jak wskazano w komentarzach, wymaga to, aby komputer zdalny mógł uzyskać dostęp do komputera lokalnego. I sshd lub (openssh-server) musi być zainstalowany i uruchomiony na komputerze lokalnym.
użytkownik @ host jest komputerem zdalnym z tego, co zrozumiałem w pytaniu, więc to polecenie nie kopiuje plików z komputera lokalnego na komputer zdalny, ale z komputera zdalnego na lokalny, jeśli nie jest SSHed na hoście i kopiuje z komputera zdalnego do siebie, jeśli SSHed.
Myślę, że pytanie jest niejasne. user@hostWydaje mi się, że odnosi się do dowolnego komputera, którego obecnie nie kontrolujesz. Tak więc, gdy OP nie jest zalogowany na komputerze zdalnym, wtedy user@hostjest to komputer zdalny. Gdy OP jest zalogowany na komputerze zdalnym, to user@hostjest to komputer lokalny. Jeśli moje założenia są poprawne, to ta odpowiedź ma sens.
Dokładnie tak samo interpretowałem pytanie, daviewales. Ponadto masz rację, użytkownik @ host reprezentowałby, niezależnie od tego, na jakiej stacji roboczej obecnie NIE pracujesz. Zastanawiałem się, czy wyjaśnić to w mojej odpowiedzi, ale pomyślałem, że będzie to implikowane.
W każdym razie, nawet jeśli użytkownik @ host reprezentuje komputer lokalny, gdy użytkownik jest zalogowany na komputerze zdalnym (mało prawdopodobne, ponieważ OP powiedział, że chce przenieść pliki lokalne na komputer hosta), zadziała to tylko wtedy, gdy komputer lokalny jest dostępny ze zdalnego włączony (zazwyczaj jeśli są w tej samej sieci LAN), a nie w scenariuszu, w którym zdalne urządzenie jest w Internecie, a urządzenie lokalne nie ma stałego adresu IP.
Jeśli masz drogę powrotną do komputera lokalnego (komputer lokalny jest dostępny ze zdalnego - zwykle, gdy oba komputery są w tej samej sieci LAN), użycie scp ze zdalnego komputera powinno działać ( scp local:/path-to-file .).
Jeśli nie można uzyskać dostępu do komputera lokalnego ze zdalnego (zwykle prawda, jeśli komputer zdalny to VPS w Internecie, a komputer lokalny ma dynamiczny adres IP), najlepszym sposobem jest otwarcie nowego terminala na komputerze lokalnym i skopiowanie pliku.
Innym sposobem, bardziej skomplikowanym i na pewno nie koniecznym tylko do kopiowania plików, byłoby utworzenie sieci VPN między komputerami (lub sieciami), aby oba komputery były dostępne z drugiego i można było używać scp z jednego komputera lub z drugiego.
podczas logowania do systemu zdalnego (łatwiej po prostu cd do lokalizacji pliku) sudo scp lokalizacja_pliku / nazwa_pliku użytkownik @ host: lokalizacja_pliku
podczas wylogowania ze zdalnego systemu sudo scp autor_użytkownika @ nazwa_hosta: lokalizacja_pliku / nazwa_pliku nowa_lokacja_na_lokalnej_machine
UWAGA: pamiętaj, że po wylogowaniu ze zdalnych systemów, jeśli jest to nowy terminal, pierwsze hasło będzie hasłem sudo, drugie hasło będzie hasłem autoryzowanego użytkownika. jeśli sudo-edowałeś wcześniej w tym konkretnym terminalu, to potrzebujesz tylko hasła autoryzowanego użytkownika. uważaj na to, to sprawia, że jest to trudne.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.