Мне нужно скопировать файл с сервера A, к которому я могу получить доступ только при первом подключении к серверу B - PullRequest
0 голосов
/ 29 сентября 2018

Мне нужно скопировать файл (~ 9 гигабайт) с сервера, назовем его сервером B. Я могу только подключиться по ssh к серверу B, сначала подключившись к серверу A. Я пытаюсь использовать scp для копирования файла на мойместная машина.Я просто собирался использовать scp, чтобы сначала скопировать файл на сервер A, а затем снова скопировать на мой локальный компьютер - к сожалению, хотя на сервере A мне доступно всего лишь половина гигабайта дискового пространства. Есть ли способскопировать его прямо с сервера B?Я не могу использовать ssh для подключения к серверу B напрямую с моего компьютера.Я использую терминал на Mac.

1 Ответ

0 голосов
/ 29 сентября 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 или что-то подобное)доступно на сервере А, вы, вероятно, также можете получить тот же эффект с опцией ProxyCommand.См. этот вопрос суперпользователя .

...