У мене є один великий файл на сервері, one
і я хочу скопіювати його на сервер two
за допомогою scp
. У мене налаштування ключів належним чином, і я можу ssh / scp на обох серверах зі свого робочого столу.
Файл, який мені потрібно скопіювати, більший, ніж вільний простір на hdd моєї робочої станції, тому я хотів зробити:
scp one:/opt/bigfile.tar.gz two:/opt/bigfile.tar.gz
але я отримав:
ssh: Could not resolve hostname one: Name or service not known
У нас немає DNS тут (не запитуйте мене чому), тому я маю це у своєму ~ / .ssh / config:
Host one
Hostname <IP address of server one>
User jspurny
Host two
Hostname <IP address of server two>
User jspurny
Якщо я спробую з меншим файлом і перенести його one
на свою робочу станцію, а потім на two
, він працює добре:
scp one:/opt/smallerfile.tar.gz .
scp smallerfile.tar.gz two:/opt/
Під час використання IP-адрес безпосередньо, як це запропоновано в коментарі, я отримав:
$ scp jspurny@<one's IP>:bigfile.tar.gz jspurny@<two's ip>:bigfile.tar.gz
Host key verification failed.
lost connection
Не проблема:
Розмір тут не проблема - це був лише «тригер» до цієї проблеми, оскільки не було можливості зберігати bigfile.tar.gz
на моїй робочій станції. Проблема виникає незалежно від розміру файлу.
Питання:
Чому команда:
scp oneremote:file secondremote:file
видає помилку незалежно від використання .ssh/config
псевдонімів або безпосередньо з використанням ip-адрес?
Вирішив - начебто - все ще шукаю пояснення - я розділив великий файл на менші файли і передав їх по черзі через свою робочу станцію. Мені все ще цікаво, чому це не вийшло. Тож я б ще вдячний деяким поясненням того, що було не так ..
Знайшов причину, чому це не вдається: Здається, я був нерозумним. Я думав, що команда
scp one:file two:file
створював два підключення до кожного сервера, а потім отримував дані від одного і негайно надсилав їх до двох і таким чином діяв як ретранслятор.
Очевидно, це не так, тому що простий -v
варіант показав, що він насправді просто з'єднується з одним, а з одного намагається з'єднатись з двома . Що очевидно неможливо, оскільки сервер один не повинен підключатися до двох .