Как перенаправить логины ssh контейнеров Докера сервера

Я планирую сервер студентов, изучающих Linux, и имею некоторые правила для этого.

  1. Все студенты получат тот же домен/порт сервера для SSH и каждое собственное имя пользователя/пароль (нормальное полномочие).

  2. 4 сервера будут кластеризироваться, и для всех пользователей не администратор, которого это перенаправит к каждому собственному Docker*.

  3. Все студенты смогут получить доступ к серверу через внутреннюю сеть с помощью клиента SSH.

Проблема очень проста, "как получить доступ назначенному докеру, использующему SSH с тем же доменом/портом для каждого пользователя". Это ясно означает, что сервер должен будет перенаправить запросы SSH каждому собственному Докеру, зависящему только от имен пользователей.

Заключительная цель состоит в том, что все студенты могут записать и создать свои программы на среде Linux через оболочку Bash и сделать в значительной степени все остальное в рамках сессии SSH.

Я считал различного Докера и документы SSH, но не смог найти соответствующее решение. Любая справка будет цениться :).

PS.

В то время как возможно, что это - проблема XY, причина, почему я хочу это, потому что я не хочу сервер, разрушенный отдельным пользователем. Таким образом, можно предложить другой способ получить это требование, конечно.

1
задан 29 June 2016 в 06:18

2 ответа

подобный вопрос задали, который мог бы ответить на Ваш вопрос:

Рассматривают использование ForceCommand директива в sshd_config . Например, я использую эти для принуждения группы из пользователей к ряду серверов:

Match Group group1
       ForceCommand ssh -t group1.fqdn

Match Group="*,!local,!group2,!root"
       ForceCommand ssh -t group3.fqdn

Вы могли использовать:

Match User foo
    ForceCommand ssh -t target-host

я никогда не использовал это, но ряд директив, один для каждого пользователя, мог сделать "шлюз SSH", Вы делаете предложение.

1
ответ дан 7 December 2019 в 15:53

Я бы предпочел использовать KVM и ansible / saltstack / puppet и иметь виртуальную машину главного моментального снимка.

Гипервизор KVM так же умен, как и dokcer, и гарантирует, что каждая виртуальная машина не получит все ресурсы, даже если одна виртуальная машина попытается сойти с ума. Не нужно беспокоиться об устранении проблем с памятью, проблемами с разрешением, процессором. Вы даже можете перегрузить, как с докером, это так круто.

  • вы можете управлять каждой виртуальной машиной с помощью одного инструмента с графическим интерфейсом.
  • вы делаете снимок золотого образа и копируете его на каждую машину в первый день
  • каждая машина имеет свой собственный (мостовой) уникальный ip адрес
  • каждая виртуальная машина может быть выключена / остановлена ​​/ перезапущена через графический интерфейс или ssh

kvm отлично работает на cli, но также имеет несколько небольших графических инструментов, с помощью которых вы можете легко получить корневую консоль в кратчайшие сроки, а также увидеть ресурсы, используемые каждой виртуальной машиной на одном экране. он элементарный, но работает очень хорошо.

Для автоматизации процессов вы можете использовать такие инструменты, как ansible или saltstack. чтобы вы могли, например,

  • легко добавить дополнительный контент в работающую виртуальную машину
  • вы можете сохранить снимки
  • отменить права или разрешения пользователя на каждой или отдельной виртуальной машине
  • остановить одну или все виртуальные машины с помощью команды ansible
  • обновить золотое изображение и снова распространить его на все машины
  • (повторно) переместить или скопировать или все изображения
  • сохранить или все изображения
  • добавить отдельных пользователей на лету
  • добавить отдельные пакеты на лету
  • снимок одной или всех виртуальных машин

Почему не докер? Докер отличный, я тоже им пользуюсь. Docker должен был быть доступен только для чтения и обслуживать клиентов.Это не совсем соответствует требованиям?

Но помните, есть

  • внутренняя сеть докеров
  • есть реестр докеров, который необходимо поддерживать в чистоте
  • Если вы не прикрепляете другие данные контейнера, то изменения пропадут, если вы обновите
  • . Также вам нужно беспокоиться о контрольных группах и пространствах имен.

ВМ ведет себя как обычная система, и для ученика нет простого способа спрятаться, потому что у него есть определенный IP-адрес. адрес, указанный ему / ей.

Поскольку место на жестком диске - одна из самых низких затрат на сервер, я бы предпочел купить дополнительный главный сервер или ПК / ноутбук и использовать его для получения полного контроля над 4 серверами, которые затем запускают X виртуальных машин, каждый с его собственным уникальным IP и / или даже DNS-именем.

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

Как только все будет готово, вы можете контролировать свой курс от начала до конца с помощью нескольких инструментов и доступных команд (или аналогичных инструментов).

Да, и если вы добавите MAAS плюс загрузку PXE к этой настройке, вы даже будете готовы к потере / замене сервера, просто вставьте новую настройку машины pxe, загрузитесь, будьте счастливы.

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

0
ответ дан 4 March 2020 в 16:59

Другие вопросы по тегам:

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