
В настоящее время я пытаюсь настроить группу пользователей, которые могут подключаться к серверу по SSH, но только проксировать его. Они не могут видеть файлы или запускать команды. Пользователи в группе также смогут использовать аутентификацию по паролю вместо ключей. Сервер SSH — OpenSSH.
Этодругой вопрос, который затрагивает что-то похожеес очень хорошим ответом. У меня проблема с полным пониманием того, что он имеет в виду, и там конкретно говорится, что пользователям не разрешено использовать сервер в качестве прокси, поэтому я не могу бездумно следовать инструкциям. Он также написан для одного пользователя, а не для группы. Чтобы попытаться решить эту проблему, я внес следующие изменения в его конфигурацию в sshd_config
.
Match Group limited-users
AllowTcpForwarding yes
#X11Forwarding no
#PermitTunnel no
#GatewayPorts no
AllowAgentForwarding no
PermitOpen localhost:1080
ForceCommand echo 'This account can only be used for [reason]'
Подозреваю, что мне, возможно, придется создать определенный тип системной группы, но я не уверен.
Есть ли какой-то предпочтительный способ сделать такой заблокированный аккаунт, а я его просто не знаю?
Редактировать: У меня естьнашел второй вопрос, который также очень похож на этот, на StackOverflowно они снова используют ключи, тогда как я бы предпочел использовать пароли вместо ключей.
Редактирование 2: Оказывается, это довольно популярная вещь.Это помогло больше всего. Похоже, мне нужно просто настроить оболочку пользователя на простое нажатие любой клавиши для выхода из системы, и он не сможет ничего сделать.
Редактировать 3: При внимательном наблюденииЭта статьяна один из других вопросов я пришел к следующему выводу, который по сути является тем же самым, но без двух отдельных групп:
Если информация верна, я ее обновлю.
Я создал, на первый взгляд, совершенно бесполезную оболочку, создав файл /usr/bin/tunnel_shell
и поместив в него это
#!/bin/bash
trap '' 2 20 24
clear
echo -e "rn33[32mSSH tunnel started, shell disabled by the system administrator"
while [ true ] ; do
sleep 1000
done
exit 0
Я создал группу под названием tunnel_group, используя
groupadd tunnel_group
Я добавил пользователя tunnel_user, используя это. -M не дает ему домашнего каталога. -G tunnel_group добавляет его в tunnel_group (группу, которую я создал ранее). -s устанавливает его оболочку в файл tunnel_shell, который я создал ранее.
useradd -M -G tunnel_group -s /usr/bin/tunnel_shell tunnel_user
Затем я установил пароль пользователя, используя
passwd tunnel_user
Я /etc/ssh/sshd_config/
добавил это в конец файла.
Match Group tunnel_group
AllowTcpForwarding yes
#X11Forwarding no
PermitTunnel yes
GatewayPorts yes
AllowAgentForwarding yes
PermitOpen localhost: 1080
ForceCommand echo 'This account can only be used for SOCKS and has be restricted accordingly.'