У меня нет достаточной репутации для добавления комментария.
@o_O Tync: Вы используете эту структуру для основанных на Django веб-сайтов? вопрос chernevik характерен для того, как много различных веб-сайтов должны сосуществовать на одном сервере, и должны ли они совместно использовать библиотеки Django или использование отдельно установленные версии. Плюс Django имеет определенные места, где это ожидает, что типы файла будут жить (некоторые из них могут быть изменены, если Вы знаете то, что Вы делаете). Я предполагаю, что Вашей установкой не является Django, конкретный, поскольку Вы не указали, где Вы сохраняете свои медиа-файлы, администраторские медиа-файлы, шаблоны, где приложения живут и где site.urls?
Я прокомментировал бы расположение chernevik, если бы у меня было больше идеи о нескольких сайтах на одном сервере, но я не делаю.
После четырех лет этот ответ заслужил обновления. В то время как первоначально я использовал authorized_keys
самостоятельно и вероятно использовал бы его все еще в некоторых избранных случаях, можно также использовать центральное sshd_config
конфигурационный файл сервера.
Можно назначить (для конкретного варианта использования) группу, такой как proxy-only
или Match
отдельные пользователи. В sshd_config
. Это сделано после глобальных настроек и отменяет, повторяет или совершенствовало некоторые настройки, данные в глобальных настройках.
Примечание: часть синтаксиса/директив, используемого в sshd_config(5)
документируются в man
страница для ssh_config(5)
. В особенности удостоверьтесь, что считали раздел PATTERNS ssh_config(5)
.
Для группы это означает Ваш Match
блок начался бы как это:
Match group proxy-only
Вы можете Match
следующие критерии: User
, Group
, Host
, LocalAddress
, LocalPort
и Address
. Соответствовать нескольким критериям, просто отдельным от запятой пары шаблона критериев (group proxy-only
выше).
В таком блоке, который традиционно располагается с отступом соответственно для краткости (но не должен к), можно затем объявить настройки, Вы хотите запросить группу пользователей, не имея необходимость редактировать каждый authorized_keys
файл для членов той группы.
no-pty
сходя authorized_keys
был бы зеркально отражен a PermitTTY no
установка и command="/sbin/nologin"
стал бы ForceCommand /sbin/nologin
.
Дополнительно можно также установить больше настроек для удовлетворения паранойи администратора, такой как chroot
- луг пользователь в его домашнюю папку и закончился бы с чем-то вроде этого:
Match group proxy-only
# AllowTcpForwarding no
ChrootDirectory %h
ForceCommand /sbin/nologin
# GatewayPorts yes
# KbdInteractiveAuthentication no
# PasswordAuthentication no
# PubkeyAuthentication yes
# PermitRootLogin no
PermitTTY no
(проверьтесь, нуждаетесь ли Вы или хотите закомментированные строки и не комментируете по мере необходимости),
%h
маркер, которым заменяет каталог мотыги пользователя (%u
привел бы к имени пользователя и %%
знак процента). Я нашел ChrootDirectory
особенно полезный для ограничения моего sftp-only
пользователи:
Match group sftp-only
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
PasswordAuthentication no
Возражайте против этого, только определенные директивы могут использоваться в a Match
блок. Консультируйтесь man
страница sshd_config(5)
для деталей (ищут Match
).
NB: часть ниже этого комментария был моим исходным ответом. Между тем - но это также зависит от функций Вашего точного sshd
версия - я пошел бы для метода, описанного выше в большинстве случаев.
Да Вы можете, столь мелкомодульный, как можно присвоить открытые ключи. В дополнение к nologin, как рекомендуется ajdecon, я предложил бы установить следующее перед ключевой записью в authorized_keys
:
no-pty ssh-rsa ...
Никакое имущество не говорит серверной стороне, что никакой псевдотерминал не должен быть выделен для того ключа.
Можно также вызвать выполнение чего-то как nologin для конкретного ключа путем предварительного ожидания этого:
command="/sbin/nologin",no-pty ssh-rsa ...
Я знаю, что это не может быть ответом, который Вы ищете, но Вы рассмотрели использование OpenVPN как альтернативы?
На случай, если вы готовы отказаться от пользователя / пароля аутентификации и использования ключей для входа в систему, вы можете указать параметр s для каждого открытого ключа.
Примечательные параметры:
command = "command"
Указывает, что команда выполняется всякий раз, когда это ключ используется для аутентификации. Команда, предоставленная пользователем (если таковая имеется), игнорируется.
и
restrict
Включить все ограничения, то есть отключить перенаправление порта, агента и X11, а также отключить выделение PTY и выполнение ~ / .ssh /rc.[12136 visible и, наконец,
перенаправление портов Включить переадресацию портов, ранее отключенную параметром restrict.
С их помощью вы можете в значительной степени ограничить пользователя этой конкретной пары ключей, что (я) он может делать с сеансом SSH.
Это будет выглядеть так:
]restrict,port-forwarding,command="/sbin/nologin" ssh-rsa <base64-encoded key>