SSH посредством нескольких использования хостов ProxyCommand?

Я использую звон в качестве теста для 'вытягивания' всего дерева от моего iPhone через usb, объединяющийся в сеть только для тестирования его.

Работает отлично!

plink user@host 'tar' --create --bzip2 --verbose / > x:\iphonebackup\iphone.tar.bz2

процессор iPhone имеет замедление, таким образом, это прибывает в рывки. Но, это работает отлично.

Примечание: Не учтите "-подробная" часть для подавляет шумы/сохраняет пропускной способности. Я включал его так, чтобы я заставил что-то на своем экране сообщать мне, что это работало правильно. Извергание всей этой информации победило бы цель сохранить канал/скорость. Я только использовал его для подтверждения функции.

11
задан 9 March 2012 в 06:43
4 ответа

Легко.

Предположим следующую настройку сети:

example network setup

Вы должны иметь возможность использовать файл ~ / .ssh / config, который выглядит примерно так:

host foo bar
    ProxyCommand ssh -x -a -q gateway.example.com nc %h 22

host baz
    ProxyCommand ssh -x -a -q foo nc %h 22

Идея здесь в том, что ваш SSH действительно знает, как добраться до "foo", поэтому SSH там будет успешным. И оттуда вы можете "nc" перейти в baz. А если во внутренней частной сети есть другие хосты наряду с «baz», вы можете просто добавить их в строку «host baz».

Это в основном рассматривает хост «foo» как шлюз к «baz», так же как "gateway" - это шлюз к "foo".

Очистить?

13
ответ дан 2 December 2019 в 21:44

Что касается ответа готи: вместо использования netcat ( «ssh ... nc% h 22» ), начиная с OpenSSH 5.4, вы можете сделать это напрямую с помощью: "ssh -W% h: 22 ..." . Таким образом, вам не нужно беспокоиться о том, установлен ли netcat в нужном месте.

13
ответ дан 2 December 2019 в 21:44

Используя закрытые ключи, хранящиеся на локальном компьютере, введите эту команду с закрытыми клавишами, именами пользователей оболочки и именами хостов/IP адресами, изменёнными на ваши локальные->шлюз->направление ssh потребностей.

Обратите внимание, что ProxyCommand предпочтительнее, чем Agent Forwarding, чтобы снизить риск компрометации аутентификации по закрытому ключу (используя шлюз и локальное соединение агента ssh для компрометации других хостов, как если бы у взломщика был закрытый ключ), когда шлюз/перегрузочный ящик взломан root-hijacker'ом.

Single Command To Proxy SSH to a Server (хранить оба приватных ключа на локальном компьютере):

sudo ssh -i dest_private_key.pem -o "ProxyCommand ssh -W %h:%p -i gate_private_key.pem gate_user@gate_IP" dest_user@dest_IP 
1
ответ дан 2 December 2019 в 21:44

Это то, что я делаю, чтобы выйти из защищенной сети в Интернет.

Я использую свой ноутбук для работы с кодом по адресу ] сборка . Поскольку сборка ограничена доступом в Интернет, чтобы клонировать репо с github.com, мне сначала нужно перейти в панель инструментов , которая также не имеет доступа в Интернет. Но он может получить доступ к gw , у которого есть Интернет.

Примерно так:

SSH jumping schematic

My .ssh / config в build :

Host gw
  ProxyCommand ssh -A -W %h:%p toolbox

Host github.com
  ProxyCommand ssh -A -W %h:%p gw

Пояснение.

  1. Точка зрения взята из build . На других серверах нет конфигураций.
  2. Во-первых, я заявляю, что для доступа к gw вам необходимо сделать это через набор инструментов .
  3. Во-вторых, я заявляю, что чтобы попасть на github.com , вам нужно сделать это через gw . Внутренне SSH использует предыдущее правило.
  4. В конечном итоге git clone (скрытый) просто работает!

Очистить?

0
ответ дан 2 December 2019 в 21:44

Теги

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