2

Фон

У меня есть оператор bash_profile, который динамически устанавливает мою переменную отображения (я чаще всего нахожусь на Wi-Fi), когда мне нужно запустить несколько программ x windows с наших серверов.

if [ ! $DISPLAY ] ; then
    if [ "$SSH_CLIENT" ] ; then
        export DISPLAY=`echo $SSH_CLIENT|cut -f1 -d\ `:0.0
        echo "The display variable has been set to:"$DISPLAY
    fi
fi

проблема

Моя проблема, скажем, я открываю замазку и ssh в sapserver1. Моя переменная дисплея установлена правильно. Тем не мение!

Если я затем ssh из sapserver1 в sapserver2, моя переменная отображения в sapserver2 будет установлена в sapserver1.

Вопрос

Есть ли способ переадресовать или замаскировать соединяющий IP-адрес моей рабочей станции, независимо от того, сколько раз я ssh помещаю в ящики. Или это, или способ передать переменную дисплея через.

3 ответа3

1

В вашей работе настроено перенаправление X через ssh ?

Это то, что мы запускаем здесь, вы устанавливаете DISPLAY один раз, и всякая дальнейшая цепь ssh от этого.

1

Проще, если вы избегаете установки $DISPLAY в вашем ~/.bash_profile .

Вместо этого убедитесь, что в PuTTY включена опция переадресации Enable X11 . Теперь SSH автоматически установит для $DISPLAY подходящее значение.

Когда вы переходите SSH отсюда к следующему серверу, используйте ssh -X (или установите ForwardX11 yes в ~/.ssh/config), и снова будет автоматически установлен $DISPLAY .

Единственное предостережение в том, что ваш администратор может отключить пересылку X11 в sshd_config, поэтому, если это не сработает, обсудите это с ними.

0

SSH поддерживает установку переменных удаленно. Чтобы сделать это, вы должны внести переменную в белый список специально на сервере и дать клиенту команду переслать ее.

шаги:

  1. ssh в sapserver2 и отредактируйте /etc/ssh/sshd_config добавив следующую строку:

    AcceptEnv DISPLAY
    
  2. Перезапустите демон SSH, выполнив следующую команду:

    service ssh restart
    
  3. Закройте сессию.

  4. ssh в sapserver1 и отредактируйте /etc/ssh/ssh_config добавив следующую строку:

    SendEnv DISPLAY
    
  5. Теперь, если вы войдете в sapserver2, переменная дисплея будет перенаправлена.

Обратите внимание, что это будет работать только потому, что переменная отображения доступна для клиента SSH (так как она была установлена с export).

Если это не так, вы можете передать его клиенту SSH, используя env:

env DISPLAY=$DISPLAY ssh sapserver2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .