EC2 - запустить скрипт сразу после входа в ssh?

1

Я даже не знаю, возможно ли это, но я подумал, что спрошу в любом случае!

Мне интересно, можно ли запустить скрипт сразу после входа в SSH? Я хотел создать скрипт Python, который будет выполняться сразу же после входа пользователя, требующего ввода данных пользователем (например, ввода пароля). Если проверка не пройдена, то она завершает сеанс пользователя.

Это также было бы удобно для регистрации соединений (отправка оповещений по электронной почте).

EC2 - это фантастика, но если кто-то завладеет моим личным ключом, то сможет получить доступ к серверам. Я знаю, что есть способы предотвратить произвольный доступ с помощью надежных групп безопасности и смены порта, но, эй, перехват пароля при входе не может повредить!

Кто-нибудь знает, возможно ли это?

Joe
источник
Вы можете настроить sshd для запроса пароля в дополнение к открытому ключу (двухфакторная аутентификация). Лучше задать такой вопрос на ServerFault.com или SuperUser.com.
dave4420
2
Это как-то связано с EC2?
phs
Я бы предложил другое название, например безопасный агент SSH логин или что-то подобное.
DigitalRoss

Ответы:

3

Ну, во-первых, просто поместите фразу-пароль на свой закрытый ключ с ssh-keygen -p,

Затем есть несколько способов получить контроль после входа в систему.

  • Один из них - через файл запуска оболочки пользователя или /etc файл запуска оболочки, который есть у некоторых оболочек. 1
  • Другой способ (не будет работать в старом OpenSSH) - это использовать forcecommand вариант в sshd_config.
  • Еще один способ заключается в использовании command= вариант в authorized_keys файл.

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


1. В этом случае вам необходимо обеспечить все файлы запуска оболочки от пользователя агента. Это может быть сложно. Система или оболочка могут возражать, если вы попробуете очевидный способ сделать их принадлежащими root. Это вообще более опасный подход.

DigitalRoss
источник
Кстати, одна из причин № 2 и № 3 легче обеспечить, это: scp - это своего рода подкоманда, и она блокируется forcecommand а также command=. Это препятствует тому, чтобы скомпрометированный агент просто переписал файлы безопасности.
DigitalRoss