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

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

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

ssh -L 9999:localhost:9998 dalvarado@host1 'ssh -L 9998:localhost:1234 -N dalvarado@host2' 

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

Благодаря, –

  • SSH доступ к офисному хосту за NAT-маршрутизатором
  • Прокси-сервер с хромовыми носками через тайм-ауты пересылки ssh
  • Sshuttle на DD-WRT / OpenWRT Router
  • SSH за прокси?
  • «Noshell» для пользователей прокси-сервера ssh
  • Различия между ssh -L -D
  • Как сделать туннель ssh открытым для публики?
  • SSH-туннель для VNC не работает
  • 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, вам не следует запрашивать парольную фразу / пароль.

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

    Interesting Posts

    Скорость передачи данных «логарифмически» уменьшается. Почему и может ли он быть улучшен?

    Настройка цвета фона Windows в Windows 8.1 не работает

    Как создать отдельные 7z-файлы из каждого выбранного каталога с помощью командной строки 7zip?

    Как скопировать файлы на ненадежный компьютер?

    Как FTP-сервер обрабатывает переименование существующего файла?

    Как можно хранить данные в CMOS?

    Как использовать одновременные подключения vpn через Windows 7 и привязывать их к конкретной программе?

    Восстановить таблицу разделов, все еще присутствующую в запущенной системе

    Как присоединиться к двум листам в Excel, как в SQL?

    Windows 7 Wi-Fi подключается только при подключении кабеля LAN

    «Недавно закрытые вкладки» в новой бета-версии Google Chrome?

    Перемещение Windows XP на новый ПК

    Портативная командная строка для синхронизации часов ОС Windows с сервером NTP

    Как синхронизировать несколько g-календарей с новым календарем Windows 8?

    Как переназначить нажатие клавиши двойного сдвига клавишей замка?

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