Как с помощью ssh/scp между непубличными машинами

Я часто нахожусь в следующей ситуации:

У меня есть две машины, A и B, которые находятся на LAN, и имеют непубличные IP-адреса. Машина C находится на той же LAN как B, но публично видимый. Я хотел бы скопировать файл от B до A, таким образом, я имею к:

  • ssh к C
  • ssh от C до B
  • файл scp от B до C
  • файл scp от C до A

Учитывая, что ssl может сделать замечательные вещи с туннелирующими дисплеями полностью назад от B до через C прозрачно, кажется, что должно быть возможно сделать то же с файлами.

Существует ли способ использовать стандарт ssh/scp для копирования от B до A, не имея необходимость делать временную копию на C?

3
задан 20.10.2009, 18:09

2 ответа

Если Вы можете ssh от C до B и scp к от C, то я думаю, что необходимо смочь использовать scp непосредственно от C.

(Используя aa.aa.aa.aa как IP-адрес A и bb.bb.bb.bb как IP-адрес B)

  • ssh в C
  • В командной строке на C:

    scp bb.bb.bb.bb:/path/to/file aa.aa.aa.aa:/path/to/destination

0
ответ дан 08.12.2019, 01:12
  • 1
    Вы побеждаете меня на 5 секунд. – NVRAM 20.10.2009, 18:20
  • 2
    Это работал. Если пользователь может ssh от-> C, но не от C-> A, описанный исходный метод работает, но мое решение. – Doug Harris 20.10.2009, 20:35

Вы хотите настроить перенаправление портов. Когда Вы SSH от машины к машине B добавляют туннель, т.е. добавляют-L 1234:A:22 при туннелировании к B. Затем SSH к машине C и scp файлы к B на порте 1234 (т.е. добавляют-P 1234 к scp). Это на самом деле направит для портирования 22 на машине, который является ssh портом, и следовательно это передаст непосредственно.

У меня нет трех машин, которыми можно попробовать это прямо сейчас, но я думаю, что это должно работать.

3
ответ дан 08.12.2019, 01:12

Теги

Похожие вопросы