Предотвратите учетную запись Unix от способности до SSH [дубликат]

Возможный дубликат:
Отключите прямой вход в систему для обычных пользователей (как оракул) в Linux, но позвольте scp и sftp?

Я хочу предотвратить учетную запись Unix от способности быть SSH'ed с, но это должно все еще быть применимо для SCP / SFTP.

Это возможно?

Рациональное - то, что сервер Unix использует универсальный счет на приложение, и люди входили в систему поля при использовании что универсальная учетная запись, а не их личные аккаунты. Мы хотим их к SSH к полю с помощью их личного аккаунта по контрольным причинам.

7
13.04.2017, 15:36
3 ответа

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

Если у Вас есть некоторые удаленно-единственные пользователи, которых Вы хотите ограничить scp/sftp, Вы могли бы хотеть посмотреть на scponly и этот набор инструкций относительно того, как заставить его работать (принимает Debian).

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

Необходимо также сделать группу для этих ограниченных пользователей и (конечно) добавить пользователей к группе. Затем добавьте что-то вроде этого к Вашему sshd_config файл (часто находимый в /etc/ssh или /etc):

Match Group sftp-only
        ForceCommand internal-sftp
        #ChrootDirectory /somewhere/%u # Optional chroot jail
        #AllowTcpForwarding no         # Disable TCP forwarding
        #X11Forwarding no              # Disable X11 forwarding
        #Umask 700                     # Set the umask

Это отключит/вызовет вещи как передача TCP для этих пользователей. Очевидно, необходимо удалить # для тех Вам нужно. Проверьте sshd_config(5) страница справочника для получения дополнительной информации об этом.

Из клуджей самое простое должно изменить оболочку пользователя на false или nologin (на Debian, /bin/nologin и /usr/sbin/nologin соответственно). Немного более сложный клудж должен поместить регистрацию /etc/profile для пользователя или группы пользователя и регистрируют их с ‘не позволенный войти в систему’ сообщение. Если Вам нравится страховать Ваши ставки (я делаю), можно сделать это также. Просто помните, что это не достаточно самостоятельно.

Если у Вас есть Книга Улитки, глава 8 (в свободном доступе как образец) также имеет некоторые рецепты.

9
27.01.2020, 20:16
  • 1
    Точно так же можно указать/usr/libexec/openssh/sftp-server или подобный как их оболочка входа в систему. –  rjewell 18.06.2012, 22:20

Да это возможно, но это не очень легко. Существует программа, названная rssh, который, если используется, поскольку оболочка по умолчанию для пользователя только позволит sftp, scp, rsync, cvs, и rdist. Можно, конечно, отредактировать файлы конфигурации для ограничения его далее.

http://www.pizzashack.org/rssh/

2
27.01.2020, 20:16

Вы попробовали no-pty в $HOME/.ssh/authorized_keys из того пользователя?

man sshd(8), AUTHORIZED_KEYS FILE FORMAT:
     no-pty  Prevents tty allocation (a request to allocate a pty will fail).
0
27.01.2020, 20:16
  • 1
    Это работает, но очень легко переопределить. –  andcoz 18.06.2012, 20:17