Как безопасный это должно защитить ssh ключ без пароля с помощью опции “команды” в authorized_keys файле?

[Повторно отправляя мой комментарий как ответ в запросе Anentropic.]

Если Вы используете Cygwin и как PuTTY, проверяете мятный. Это доступно в категории Shells в программе установки Cygwin (или получите источник здесь). Автор использовал значительные части PuTTY для создания его, таким образом, это ведет себя очень как PuTTY. Это может быть настроено для работы как, Вы хотели бы его к:

  • Измените размер окна только путем перетаскивания краев или углов, как любое другое Приложение Windows. Это изменит размер терминала, добавляют или строки удаления и/или столбцы, как Вы ожидали бы от чего-то как xterm.
  • Скопировать/вставить может быть настроен как операции одиночного нажатия (например, щелчок левой кнопкой, чтобы выделиться и автоскопировать, щелкните правой кнопкой для расширения, щелкните средней кнопкой для вставки).
  • Как с Терминалом OS X, перетаскивая файл или папку в мятное окно вставит полный путь в позиции курсора.
  • Все диски Windows доступны, "смонтированы" по умолчанию под/cygdrive (хотя я обычно изменяю это на/mnt с mount -c /mnt).

Моя единственная проблема с мятным состоит в том, что последние версии (0.9.4 +), кажется, делают что-то, что не любит Windows 7 UAC, таким образом, он запрашивает разрешение выполнить его каждый раз. Это, кажется, заставляет это работать с различными полномочиями, таким образом, вещи как мои сетевые диски не работают. Я не знаю, является ли это мятной проблемой или проблемой с моей системой, все же.

5
задан 13 April 2017 в 15:14
3 ответа

Фактически, gitolite использует тот же метод для аутентификации пользователя (идентифицирует базу пользователей по используемому ключу SSH) и ограничивает то, что пользователь может запускать (фактически только команда, запускающая gitolite).

gitolite используется kernel.org для контроля доступа к их репозиторию git, поэтому я думаю, что этот метод должен быть достаточно надежным. 1

3
ответ дан 3 December 2019 в 01:38

Это зависит от безопасности сценарий оболочки и разрешенные команды.

Сценарий оболочки должен защищать от попыток выполнить несколько команд (например, 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 выполнить другую команду. ( - сервер должен предотвратить это в приведенном выше сценарии.)

2
ответ дан 3 December 2019 в 01:38

Я не эксперт по ssh или безопасности, но, если исключить какую-то ошибку в ssh или вашем скрипте myssh, я не вижу никаких проблем с безопасностью. Но вы знаете эту старую пословицу: лучше перестраховаться, чем сожалеть. Возможно, вы также могли бы настроить фильтрацию на основе IP, если применимо.

0
ответ дан 3 December 2019 в 01:38

Теги

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