То, как я могу сбросить свой ssh, включает действие управления питанием?

Это - случай, где TCO и риск входят для проигрывания. Они покупают мейнфрейм за 100 000$ и вероятно тратят $25,000/лет на поддержку мейнфрейма/ОС и еще 20 000$ на поддержке их приложения.

Переключение на Unix или Windows Server жестко; Вы испытываете необходимость в одном или нескольких консультантах для миграции данных безопасно, необходимо оценить несколько приложений обработки требований, и необходимо обучить или нанять 2-3 человек для выполнения новой системы.

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

Моя жена работает на маленькую муниципальную утилиту, которая заменила систему расчетов AS/400 в прошлом году - который был куплен в 1989! (потому что IBM была вне частей и больше не будет поддерживать его) С их точки зрения, это было похоже на стиральную машину - это просто находилось там и гудело. Если бы это повредилось, то это назвало бы IBM, и они обнаружились бы для фиксации его. Они действительно недовольны заменяющей системой Windows, потому что процесс резервного копирования сосет по сравнению с AS/400, и кто-то должен проверить систему один раз в неделю; больше никакого "телефона домой".

5
задан 9 November 2010 в 16:24
5 ответов

Вы смогли сделать, чтобы пользовательский демон прислушался к состоянию, переключают D-шину. Похоже, что диспетчер электропитания гнома не выставляет сигналов для этого, но Вы смогли получать что-то от hal или DeviceKit-power/upower.

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

Если Вы добавляете свой ключ с помощью "-c" опции "ssh-добавить", это требует, чтобы Вы подтвердили каждое использование. Это не столь хорошо, как удаление ключа от Вашего агента на приостанавливает, если Вы также блокируете свой экран, это может иметь подобный эффект, так как ключевое использование не может быть подтверждено, пока Вы не входите в систему.

В прошлом я выполнил это ключевое удаление путем запущения простого скрипта, который проснулся в каждые несколько секунд и искал программу, которая блокирует экран, и если бы было найдено, что это сделало бы, "ssh-добавьте-D". Затем, после того как это ушло, это вызовет "ssh-add-c" снова для просьбы меня пароль. Я закончил тем, что переключился на просто доверие подтверждению и экранную блокировку, когда я приостанавливаю или оставляю клавиатуру.

1
ответ дан 3 December 2019 в 01:27
  • 1
    Творческий, Sean. Я отправлю свой dbus-клиентский-сценарий, когда я доберусь, сделанный (иногда зависает, пытаясь понять это с помощью #python на freenode). –  Sam Halicke 16 November 2010 в 18:01

У меня есть немного pm сценарий, на котором пользовательские сценарии выполнения для каждого вошли в систему пользователь, приостанавливает / в спящем режиме, резюме/оттепель. Я использовал это, чтобы уничтожить или перезапустить процессы, которые не ведут себя, хорошо приостанавливают. Пользователь может создать сценарии в ~/.user-pm которые выполняются в лексикографическом порядке на, приостанавливают и обратный порядок на резюме. $1 имеет операционное имя премьер-министра.

Вы могли просто добавить пользовательский сценарий, который звонит"ssh-add -D"на приостанавливают / в спящем режиме. (необходимо будет искать SSH_AUTH_SOCK где-нибудь, но я предполагаю, что Вам было бы нужно это для любого решения).

Вот глобальное pm рычаг:

> cat /etc/pm/sleep.d/10_run_user_parts
#!/bin/sh

USER_PM_DIR=".user-pm"

# foreach logged in user
for user in `users | grep -o "\S*" | sort -u`; do
    user_home=`getent passwd "${user}" | awk -F: '{print $6}'`

    # check user has a valid home-directory
    [ -d $user_home ] || continue

    user_pm_dir="$user_home/$USER_PM_DIR"
    # check for user-pm directory
    [ -d "$user_pm_dir" ] || continue

    # call run-parts as $user
    case "$1" in
        hibernate|suspend)
        su -c "run-parts --arg=\"$1\" \"${user_pm_dir}\"" "${user}"
        ;;
        thaw|resume)
        su -c "run-parts --reverse --arg=\"$1\" \"${user_pm_dir}\"" "${user}"
        ;;
        *) exit $NA ;;
    esac
done

Я нахожусь на человечности - это должно работать на debian также - иначе, YMMV

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

Это - другое косвенное решение, которое не включает зарегистрированные идентификационные данные/ключи сбрасывания от агента, но будет блокировка ssh-агента быть так же, как полезная (ssh-add -x)? Я не уверен, насколько безопасный этот метод был бы (конечно, не, где рядом столь же безопасный как удаление ключей от агента), однако я предполагаю, что эта опция была реализована для предложения вида дополнительной защиты, которую Вы ищете в этой ситуации.

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

Спасибо @Greg за ответ, я взял на себя смелость расширить его и сделать более "freedesktop" совместимым, так как pm-utils - это проект freedesktop.org.

Теперь этот скрипт будет работать в config.d, power.d, и sleep.d с копией или симлинковой ссылкой. Затем он будет искать скрипты для запуска в ~/.config/pm/, используя те же имена папок (config.d, power.d, и sleep. d) как /etc/pm.

#!/bin/sh

scriptdir=`cd $(dirname $0) && pwd`
USER_PM_DIR=".config/pm/$(basename $scriptdir)"

# foreach logged in user
for user in `users | grep -o "\S*" | sort -u`; do
    user_home=`getent passwd "${user}" | awk -F: '{print $6}'`

    # check user has a valid home-directory
    [ -d $user_home ] || continue

    user_pm_dir="$user_home/$USER_PM_DIR"
    # check for user-pm directory
    [ -d "$user_pm_dir" ] || continue

    # call run-parts as $user
    case "$1" in
        hibernate|suspend)
        su -c "run-parts --arg=\"$1\" \"${user_pm_dir}\"" "${user}"
        ;;
        thaw|resume)
        su -c "run-parts --reverse --arg=\"$1\" \"${user_pm_dir}\"" "${user}"
        ;;
        *) exit $NA ;;
    esac
done

Тогда это мой скрипт для удаления всех ключей из ssh-agent на suspend/hibernate, и повторного добавления ключа, используемого для SparkleShare. Чтобы быть уверенным, он также проверяет другие ssh-agents и удаляет из них все ключи.

#!/bin/sh

case "$1" in
    hibernate|suspend)
        if [ ! -z $SSH_AUTH_SOCK ] && [ -r $SSH_AUTH_SOCK ]; then
            ssh-add -D
        fi

        for SSH_AUTH_SOCK in `find /tmp/ssh-*/agent.* -user $USER`; do
            SSH_AUTH_SOCK=$SSH_AUTH_SOCK /usr/bin/ssh-add -D
        done
        ;;
    thaw|resume)
        if [ ! -z $SSH_AUTH_SOCK ] && [ -r $SSH_AUTH_SOCK ]; then
            /usr/bin/ssh-add -t 0 ~/.config/sparkleshare/2011-03-21_14h15.key
        fi

        for SSH_AUTH_SOCK in `find /tmp/ssh-*/agent.* -user $USER`; do
            SSH_AUTH_SOCK=$SSH_AUTH_SOCK ssh-add -t 0 ~/.config/sparkleshare/2011-03-21_14h15.key
        done

        ;;
esac
0
ответ дан 3 December 2019 в 01:27

Теги

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