[Повторно отправляя мой комментарий как ответ в запросе Anentropic.]
Если Вы используете Cygwin и как PuTTY, проверяете мятный. Это доступно в категории Shells в программе установки Cygwin (или получите источник здесь). Автор использовал значительные части PuTTY для создания его, таким образом, это ведет себя очень как PuTTY. Это может быть настроено для работы как, Вы хотели бы его к:
mount -c /mnt
).Моя единственная проблема с мятным состоит в том, что последние версии (0.9.4 +), кажется, делают что-то, что не любит Windows 7 UAC, таким образом, он запрашивает разрешение выполнить его каждый раз. Это, кажется, заставляет это работать с различными полномочиями, таким образом, вещи как мои сетевые диски не работают. Я не знаю, является ли это мятной проблемой или проблемой с моей системой, все же.
Фактически, gitolite использует тот же метод для аутентификации пользователя (идентифицирует базу пользователей по используемому ключу SSH) и ограничивает то, что пользователь может запускать (фактически только команда, запускающая gitolite).
gitolite используется kernel.org для контроля доступа к их репозиторию git, поэтому я думаю, что этот метод должен быть достаточно надежным. 1
Это зависит от безопасности сценарий оболочки и разрешенные команды.
Сценарий оболочки должен защищать от попыток выполнить несколько команд (например, allowed-command blah; other-command
) или злоупотребления различиями PATH
. Я бы, вероятно, написал сценарий для вызова разрешенных команд с указанием их полного пути и использовал exec
, чтобы предотвратить дальнейшую интерпретацию предоставленной клиентом команды:
set -- $SSH_ORIGINAL_COMMAND
case "$SSH_ORIGINAL_COMMAND" in
rsync\ --server*)
shift 2;
exec /usr/bin/rsync --server "$@"
;;
Вам также необходимо убедиться, что разрешенные команды не имеют механизма для выполнения других команд. Например, rsync -e "другая-команда"
заставит rsync выполнить другую команду. ( - сервер
должен предотвратить это в приведенном выше сценарии.)
Я не эксперт по ssh или безопасности, но, если исключить какую-то ошибку в ssh или вашем скрипте myssh, я не вижу никаких проблем с безопасностью. Но вы знаете эту старую пословицу: лучше перестраховаться, чем сожалеть. Возможно, вы также могли бы настроить фильтрацию на основе IP, если применимо.