Как я могу предотвратить соединение SSH быть закрытым сервером для пользователя с оболочкой nologin?

Инерция.

Bash, оказалось, был наиболее легко доступной бесплатно оболочкой, когда Linux (GNU/Linux, если Вы предпочитаете) системы начал появляться. То, что это из проекта GNU, не причиняло боль.

Что касается того, почему это - все еще оболочка по умолчанию, никогда не было достаточно хорошей причины изменить его. Даже если некоторая другая оболочка лучше, существуют преимущества для наличия той же оболочки входа в систему по умолчанию через различные дистрибутивы, и было бы трудно заставить всех (Debian, Red Hat, SuSe, и т.д.) соглашаться переключиться на что-то еще.

И в конце концов, это - только значение по умолчанию. Любой пользователь может использовать chsh изменить его оболочку входа в систему. Нет никакой потребности изменить значение по умолчанию для всех.

5
06.01.2013, 16:03
2 ответа

Учетная запись с /usr/sbin/nologin поскольку его оболочке разрешают установить, устанавливают перенаправление портов. Однако, при попытке выполнить команду оболочки, соединение насильственно завершается. Фиксация не должна выполнять команду оболочки. С OpenSSH (реализация SSH почти во всех невстроенных системах Unix/Linux), передайте опцию -N клиенту SSH.

ssh -N -L 1234:somehost:5678 restricteduser@host.example.com

С PuTTY галочка “Не запускает оболочку или команду вообще” на вкладке Connection> SSH.

5
27.01.2020, 20:36
  • 1
    Спасибо. Я нашел "Соединение->, SSH-> не запускают оболочку или команду вообще", и это работает. –  limilaw 10.01.2013, 17:20

От человека ssh:

The session terminates when the command or shell on the remote machine exits and all X11 and TCP connections have been closed.

Я думаю, что самый легкий путь (но не единственное) делает/bin/cat как регистрирующуюся оболочку. Грязный взлом.

3
27.01.2020, 20:36

Теги

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