как сказано в названии, я хочу запретить доступ ssh для пользователя, но разрешить пользователю выполнять java-процесс и получать доступ к SFTP
Как это можно сделать?
Вы можете создать группу под названием sftponly.
Добавьте пользователя в эту группу и настройте ssh
/etc/ssh/sshd_config
Добавлен Conf:
Match Group sftponly
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
Теперь пользователи в этой группе смогут только sftp
Есть небольшая проблема с этой настройкой: chroot из ssh требует, чтобы% h (домашняя переменная) принадлежала root. С помощью этой переменной вы можете сделать это для нескольких пользователей.
так было бы так:
/home/user1 ( root owner )
/home/user1/public_html ( user1 owner )
Не обязательно быть public_html, это может быть любое имя папки ... пример Java
Что ж, простой способ запретить доступ по ssh для большинства вещей - это изменить переменную среды оболочки в своем профиле. Проверить здесь: http://www.cyberciti.biz/faq/how-to-disable-shell-ftp-access-to-newuser/
Если вы хотите, чтобы у них был доступ к узкоспециализированным командам, отметьте http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html - вам нужно предоставить им авторизованный ключ (а не пароль) и следовать инструкциям в разделе «Принудительная команда», чтобы при входе в систему всегда выполнялась одна и та же команда, игнорируя все, что они отправляют Это.