Используйте X по промежуточной машине

Вещь помнить является этим ~/.ssh/environment читается перед оболочкой или ssh команда порождена, так (например), ни экспорт, ни $PATH не имеют смысл. Можно только установить переменные среды (не, выполняет общие команды оболочки), здесь.

Если Вы захватываете среду для неинтерактивной оболочки ssh, то изменяете это, необходимо получить то, что Вы хотите для неинтерактивных команд. Например:

$ ssh mylogin@myserver env

даст Вам, с чего запускается ssh на Вашем сервере. Если Вы пишете Ваш ~/.ssh/environment файл как:

PATH=/usr/local/bin

и повторно выполненное вышеупомянутое, необходимо получить "удар: ENV: команда, не найденная". Хороший!

Теперь, создайте свой путь явно, на основе того, чем это было в основе от Вашей системы sshd (т.е. первое "ssh.... огибающий" вызов), например (добавление /usr/local/bin в голове):

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Обратите внимание также, что не полезно попытаться установить CWD в ~/.ssh/rc (за которым бегут ~/.ssh/environment читается, но перед Вашим ssh оболочка или команда), поскольку Ваша оболочка запустится (по умолчанию) в Вашем домашнем пути.

3
16.10.2013, 21:24
2 ответа

Вы могли бы попытаться использовать "новый" (на самом деле не такой уж новый) флаг cmdline -Y. это - своего рода лучшая замена для -X. из руководства:

     -Y      Enables trusted X11 forwarding.
             Trusted X11 forwardings are not subjected 
              to the X11 SECURITY extension controls.

теперь это не показывает много (по крайней мере, для объединения в цепочку). но быстрый тест показывает, что работает:

   $ ssh -Y localhost   # first connection
   $ ssh -Y localhost   # second connection on top of first connection
   $ xclock

(я также протестировал в реальной сети, где СРЕДНЯЯ машина является определенно сервером без любого X11, таким образом, это действительно работает),

2
27.01.2020, 21:28
  • 1
    я устанавливаю обратный туннель как выше и затем делаю ssh -Y MIDDLE и затем ssh -Y localhost -p ... и это не работает. Та же ошибка X11 forwarding request failed on channel 0. –  mtahmed 15.10.2013, 23:01
  • 2
    @mtahmed я воспроизвел Вашу установку с передачей удаленного порта (который действительно немного более сложен, чем мой пример), и он действительно работает здесь. действительно ли Вы уверены, что XForwarding является установкой правильно на РАБОТЕ? например, можно ли сделать ssh -Y user2@WORK xclock от машины X-enabled, которая может непосредственно достигнуть РАБОТЫ (в худшем случае делают это от самой РАБОТЫ, но предпочтительно от другой машины в Вашем worknet) –  umläute 16.10.2013, 11:20
  • 3
    я вижу то, что Вы имеете в виду. Должен был протестировать это сначала. Если я делаю ssh -Y user2@localhost от работы я получаю ту же ошибку X11 forwarding request failed on channel 0. Я попытаюсь найти способ зафиксировать это и отправить назад здесь. –  mtahmed 16.10.2013, 20:06
  • 4
    Извините, я делал очень глупую ошибку. Я обновил вопрос отразить мою глупость. :p –  mtahmed 16.10.2013, 21:22
  • 5
    @mtahmed делает это работает теперь? если так, необходимо принять, что ответ отмечает вопрос, как "закрыто". (если Вы чувствуете, что ни один из ответов на самом деле не отвечает всем требованиям, не стесняйтесь обеспечивать и признавать, что Ваш собственный ответ, например, "решение должен был установить X11Forwarding yes в sshd_config") –  umläute 17.10.2013, 10:28

Плоскость

ssh -Y user1@MIDDLE -p 33333

на ДОМЕ должен добиться цели. Никакая потребность в ssh -Y user2@localhost -p 33333 на СЕРЕДИНЕ.

0
27.01.2020, 21:28
  • 1
    , но только если СЕРЕДИНА не защищена брандмауэром, который это блокирует 33333 –  umläute 16.10.2013, 11:17
  • 2
    @umläute является там каким-либо упоминанием о брандмауэре, блокирующем переданный порт на той машине в вопросе? Обычно создание конвейера короче делает это намного менее подверженным ошибкам. –  peterph 16.10.2013, 21:32
  • 3
    я просто отмечал, что Ваше решение могло бы иметь проблемы в установке firewalled (OP did'nt упоминают где угодно, что нет никакой СЕРЕДИНЫ защиты брандмауэра; однако, весь сценарий основан на тяжелом брандмауэринге - РАБОТЫ и ДОМОЙ). Я полностью соглашаюсь с сокращением конвейеров; я не вижу однако, как Ваше решение может помочь с исходной проблемой OP - они, очевидно, смогли войти в машину РАБОТЫ, таким образом, туннелирование было установкой правильно. –  umläute 17.10.2013, 10:33
  • 4
    @umläute не обязательно брандмауэринг - чистый NAT достаточно (который является самым обычным случаем в этом сценарии). –  peterph 17.10.2013, 10:36

Теги

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