Как сделать SCP файл через промежуточный сервер?

Я использую Ccygwin на WinXP (с оболочкой bash). Я хочу SCP-файл с моего локального хоста на удаленную машину – host2. Тем не менее, я могу только SSH на промежуточную машину – host1, а затем оттуда SSH до host2. (Обратите внимание: я не могу получить доступ к host2 с моего локального хоста).

Я думал, что туннель – это мой ответ, но когда я пытаюсь создать туннель

  • Клиент WinSCP для Ubuntu
  • Homeserver для команды «scp user @ server: файл localhost @ server: mycomp /»?
  • Scp между двумя удаленными хостами от моего (третьего) компьютера
  • Файлы Rsync через промежуточный хост
  • Как я могу использовать SCP с удаленной машины на локальный компьютер, когда я вне своей домашней сети?
  • Cp: ​​не может stat: нет такого файла или каталога
  • ssh -L 9999:localhost:9998 dalvarado@host1 'ssh -L 9998:localhost:1234 -N dalvarado@host2' 

    Но после ввода этой команды и входа в систему система просто зависает. Каков правильный способ настройки туннеля, а затем SCP файл после?

    Благодаря, –

  • Как я могу направить * некоторый * трафик через прокси SSX SOCKS на OS X?
  • Отключить вход SSH через пароль для каждого пользователя?
  • Как я могу удаленно запускать сценарии на нескольких серверах, добавлять выходные данные
  • SSH запрашивает пароль, даже если установлен открытый ключ
  • Предотвращение остановки уже запущенного фонового процесса после закрытия SSH-клиента
  • Что именно определяет, если фоновая работа убита, когда оболочка завершена или убита?
  • 3 Solutions collect form web for “Как сделать SCP файл через промежуточный сервер?”

    На это уже ответили лучше всего.

    Подводя итог: поставьте следующее в ~/.ssh/config

     Host target.machine User targetuser HostName target.machine ProxyCommand ssh proxyuser@proxy.machine nc %h %p 2> /dev/null 

    А затем просто scp to target.machine в любое время, когда вы хотите прокси через proxy.machine!

    Также работает для ssh , поэтому сэкономит ваше время и на целевой машине.

    Кредит должен быть отправлен пользователю user24925, который ответил на это в 2011 году.

    Чтобы настроить туннель SSH, используйте следующий формат:

     ssh -L 9999:host2:22 user@host1 

    Эта команда подключается к host1 как user и порт 9999 туннелей на компьютере, host2 команду на порт 22 на host2 . -N является необязательным, или вы можете использовать что-то вроде top или watch чтобы поддерживать сеанс в случае необходимости.

    Затем просто запустите scp для host2 на localhost: 9999.

    Сначала вы можете скопировать файл в host1, например:

     scp file dalvarado@host1:. 

    Затем сделайте это, чтобы получить его в host2:

     ssh -t dalvarado@host1 'scp file dalvarado@host2:.' 

    Параметр -t для ssh заставляет его выделять псевдотерминал, что может облегчить для scp на host1 запрос на получение парольной фразы / пароля. Если у вас запущен и настроен ssh-agent, вам не следует запрашивать парольную фразу / пароль.

    Я предлагаю эту альтернативу, потому что если вы использовали туннель, вам все равно потребуется две команды: одна для настройки туннеля и одна для копирования файла через него. Это кажется более простым.

    Давайте будем гением компьютера.