3

У меня есть рабочий стол Ubuntu, который я ssh от моего MacBook Pro. Часто мне приходится сталкиваться с несколькими физическими окнами, которые вставляются в рабочий стол по протоколу ssh, возможно, для настройки кода параллельно или еще чего-нибудь. Есть ли способ, которым я могу достичь этого без ssh и ввести свой пароль для каждого физического окна?

Я не хочу использовать sph без пароля. Я не думаю, что экран GNU - это то, что я хочу здесь (это несколько виртуальных терминалов в одном терминале).

3 ответа3

4

Да, SSHv2 поддерживает несколько сеансов через одно соединение. OpenSSH поддерживает это в виде "мастера мультиплекса".

  1. В ~/.ssh/config установите шаблон пути сокета:

    Host *
        ControlPath ~/.ssh/S.%l.%r@%h:%p
        ControlMaster auto
    
  2. Включить мультиплексные соединения:

    • Запустите мастер-соединение вручную, добавив опцию -M (master) в ssh .

      Комбинация ssh -fNM может быть полезна для мгновенного перехода мастера в фоновый режим.

      $ ssh -fNM <host>
      
    • Для того, чтобы сделать это автоматически (только OpenSSH 5.6 и выше), установите ControlPersist в вашем ~/.ssh/config:

      Host *
          ControlPersist 10m
      

      С помощью этой опции мастер-соединение будет запущено автоматически, а опция -M не нужна.

  3. Дополнительные соединения можно открыть, просто запустив ssh host в новых окнах терминала. Это также работает с sftp , scp и всем, что использует SSH.

  4. Когда ControlPersist используется, мастер-соединение будет автоматически закрыто, когда оно больше не нужно. (В приведенном выше примере 10m - это десять минут.)

    В противном случае используйте команду ssh host -O exit чтобы остановить мастер вручную. Это уничтожит все соединения с этим хостом.

Для получения дополнительной информации см. Ssh (1) (опция -O ) и ssh_config (5) (опции Control* ).


Примечание. При редактировании .ssh/config убедитесь, что разделы, касающиеся хоста, идут первыми, а Host * - последний раздел.

2

Вы можете сделать это, используя ssh -Y . Со страницы руководства ssh:

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

Итак, скажем, вы входите в систему Ubuntu следующим образом:

$ ssh -Y user@ubuntu

После этого у вас будет приглашение на удаленной машине. Вместо того, чтобы работать с этим приглашением, запустите эмулятор терминала, такой как gnome-terminal, xterm, aterm, terminator и т.д. И т. Д .:

user@ubuntu $ gnome-terminal &

Затем откроется экземпляр терминала gnome, который появится на экране вашего компьютера Mac. Вы можете работать там и каждый раз, когда вам нужен новый терминал, запускать gnome-terminal & снова.


Возможные проблемы:

  1. В зависимости от конфигурации вам может потребоваться разрешить доступ к сеансу X (на Mac), выполнив:

    user@mac $ xhosts +
    

    Затем вы можете отменить это:

    user@mac $ xhosts -
    
  2. Проверьте файл конфигурации ssh на машине с Ubuntu (/etc/ssh/sshd_config), чтобы убедиться, что эта строка присутствует и не прокомментирована:

    X11Forwarding yes
    
  3. Я думаю, что это работает из коробки в OS X. Если это не так, возможно, вам придется запустить сеанс X на вашем Mac.

0

Одним из простых подходов было бы экспортировать терминал из вашего Ubuntu на ваш Mac.
тогда все, что вам нужно сделать для другого окна терминала, это что-то вроде xterm & .

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