Mam jeden duży plik na serwerze one
i chcę go skopiować na serwer two
przy użyciu scp
. Mam poprawnie skonfigurowane klucze i mogę ssh / scp do obu serwerów z mojego pulpitu.
Plik, który muszę skopiować, jest większy niż wolne miejsce na dysku twardym mojej stacji roboczej, więc chciałem zrobić:
scp one:/opt/bigfile.tar.gz two:/opt/bigfile.tar.gz
ale mam:
ssh: Could not resolve hostname one: Name or service not known
Nie mamy tutaj DNS (nie pytaj mnie dlaczego), więc mam to w mojej ~ / .ssh / config:
Host one
Hostname <IP address of server one>
User jspurny
Host two
Hostname <IP address of server two>
User jspurny
Jeśli spróbuję użyć mniejszego pliku i przenieść go z one
mojej stacji roboczej, a następnie do two
, to działa dobrze:
scp one:/opt/smallerfile.tar.gz .
scp smallerfile.tar.gz two:/opt/
Korzystając z adresów IP bezpośrednio, jak sugerowano w komentarzu, otrzymałem:
$ scp jspurny@<one's IP>:bigfile.tar.gz jspurny@<two's ip>:bigfile.tar.gz
Host key verification failed.
lost connection
To nie problem:
Rozmiar nie jest tutaj problemem - był tylko „wyzwalaczem” tego problemu, ponieważ nie było sposobu, aby zapisać bigfile.tar.gz
na mojej stacji roboczej. Problem występuje niezależnie od rozmiaru pliku.
Pytanie:
Dlaczego polecenie:
scp oneremote:file secondremote:file
zgłasza błąd niezależnie od tego, czy używasz .ssh/config
aliasów, czy bezpośrednio adresów IP?
Rozwiązany - w pewnym sensie - wciąż szukający wyjaśnień - podzieliłem duży plik na mniejsze pliki i przesyłałem je jeden po drugim przez moją stację roboczą. Nadal zastanawiam się, dlaczego to nie zadziałało. Wciąż byłbym wdzięczny za wyjaśnienie, co było nie tak ...
Znalazłem przyczynę niepowodzenia: Wygląda na to, że byłem głupi. Myślałem , że to polecenie
scp one:file two:file
tworzył dwa połączenia z każdym serwerem, a następnie odbierał dane z jednego i natychmiast wysyłał je do dwóch, a tym samym działał jak przekaźnik.
Oczywiście tak nie jest, ponieważ prosta -v
opcja ujawniła, że w rzeczywistości łączy się tylko z jednym, a z jednego próbuje połączyć się z dwoma . Co oczywiście nie jest możliwe, ponieważ serwer pierwszy nie powinien łączyć się z dwoma .