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

Я часто бываю в следующей ситуации:

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

  • Ssh to C
  • Ssh от C до B
  • Scp-файл от B до C
  • Scp-файл от C до A

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

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

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

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

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

(Используя 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

  • По умолчанию SecurityProtocol в .NET 4.5
  • Java7 Отказ от доверия сертификату в хранилище доверия
  • java.security.cert.CertificateException: сертификаты не соответствуют ограничениям алгоритма
  • Java: загрузка SSL Keystore через ресурс
  • Получено фатальное предупреждение: handshake_failure через SSLHandshakeException
  • HTTPS GET (SSL) с Android и самозаверяющим сертификатом сервера
  • Последствия безопасности отключения CURLOPT_SSL_VERIFYHOST (libcurl / openssl)
  • Зашифрованы ли URL HTTPS?
  • Включить TLS 1.1 и 1.2 для клиентов на Java 7
  • Как игнорировать проверку сертификата, когда ssl
  • Как получить файл .pem из .key и .crt файлов?
  • Давайте будем гением компьютера.