Мне нужно скопировать файл (~ 9 гигабайт) с сервера, назовем его сервером B. Я могу подключиться к серверу B только по ssh, предварительно подключившись к серверу A. Я пытаюсь использовать scp для копирования файла на мою локальную машину. Я просто собирался использовать scp, чтобы скопировать файл сначала на сервер A, а затем снова скопировать на мою локальную машину - к сожалению, хотя на сервере A мне доступно только полгига дискового пространства. Есть ли способ скопировать его напрямую с сервера B? Я не могу использовать ssh для подключения к серверу B напрямую с моего компьютера. Я использую терминал на Mac.
Мне нужно скопировать файл с сервера A, к которому я могу получить доступ, только сначала подключившись к серверу B.
- Похоже, вы не можете. Сервер A действует как Jump Box для другого сервера, и, основываясь на том, что вы нам здесь рассказываете, другой альтернативы подключения нет. 29.09.2018
- Ах облом. Спасибо. 29.09.2018
Ответы:
Если ваш компьютер и хост перехода (сервер A) используют OpenSSH v7.3 или более позднюю версию, вы можете использовать опцию ProxyJump, чтобы сделать это автоматически:
scp -oProxyJump=userA@serverA userB@serverB:remoteFile localDest
Это открывает SSH-соединение с сервером A, затем туннелирует через него, чтобы открыть SSH-соединение (/scp) с локального компьютера на сервер B, а затем передает файл по этому соединению. Обратите внимание, что при подключении он запросит два пароля: сначала serverA, затем serverB.
Вы также можете автоматизировать это, создав файл конфигурации ssh на своем компьютере (~/.ssh/config) и сделав запись примерно такого вида:
Host serverB
ProxyJump userA@serverA
... который сообщает ssh (и scp) автоматически выполнять ProxyJump всякий раз, когда вы запрашиваете соединение с serverB. Дополнительные сведения см. в документах OpenSSH в файле конфигурации.
Если у вас нет достаточно нового OpenSSH на обоих компьютерах, но netcat
(или nc
, или что-то подобное) доступен на сервере A, вы, вероятно, также можете получить тот же эффект с опцией ProxyCommand. См. этот вопрос суперпользователя.