Параметр SSH authorized_keys: несколько команд?

У authorized_keys есть команда = "...", которая ограничивает ключ одной командой. Есть ли способ ограничить ключ командой multiple ? Например. с помощью регулярного выражения или путем редактирования другого файла конфигурации?

11 голосов | спросил dkaeae 15 Jpm1000000pmFri, 15 Jan 2016 21:46:24 +030016 2016, 21:46:24

2 ответа


15

У вас может быть только одна команда на ключ, потому что команда «принудительно».

Но вы можете использовать сценарий оболочки. Вызываемая команда получает исходную командную строку в качестве переменной среды $SSH_ORIGINAL_COMMAND, которую она может оценить.

например. поместите это в ~/.ssh/allowed-commands.sh:

#!/bin/sh
#
# You can have only one forced command in ~/.ssh/authorized_keys. Use this
# wrapper to allow several commands.

case "$SSH_ORIGINAL_COMMAND" in
    "systemctl restart cups")
        systemctl restart cups
        ;;
    "shutdown -r now")
        shutdown -r now
        ;;
    *)
        echo "Access denied"
        exit 1
        ;;
esac

Затем укажите его в ~/.ssh/authorized_keys с помощью

command="/home/user/.ssh/allowed-commands.sh",…
ответил hfs 18 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 18 Sep 2016 23:55:13 +0300 2016, 23:55:13
0

Другие подходы используют, например, ограниченную оболочку для данного пользователя или использовать оболочку, которая сдерживает команды для al файлов /скриптов, найденных в определенном каталоге, что позволяет увеличить список команд без изменения обертки.

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

Этот пример будет выражаться следующим образом:

command="only systemctl shutdown"

И с этим контентом создаются файлы .onlyrules:

\:^systemctl restart cups$:{p;q}
\:^shutdown -r now$:{p;q}

Преимущество этого «единственного» подхода заключается в том, что нет необходимости писать отдельные сценарии для каждого пользователя и ситуации.

ответил Georg Lehner 13 MaramMon, 13 Mar 2017 00:50:11 +03002017-03-13T00:50:11+03:0012 2017, 00:50:11

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132