вторник, 3 августа 2010 г.

Ограничения ssh через authorized_keys

Почти все знают, что с помощью ~/.ssh/authorized_keys можно разрешить пользователю с определенным RSA/DSA ключем логиниться через ssh. Но мало кто знает, что там же можно ограничить возможности ssh для пользователя. :)

если строчку с ключем, которая обычно выглядит так:
ssh-rsa многобукав user@hostname
поправить на
command="/bin/date" ssh-rsa многабукав ...
То при логине с этим ключем автоматически запустится /bin/date и произойдет logout из системы. Другую команду пользователь запустить не сможет (удобно, если ваш скрипт ходит зачем-то на этот хост - для ограничения его возможностей на всякий пожарный).
from="192.168.1.1" - ключ сработает, только если пользователь пришел с хоста 192.168.1.1, иначе спросит пароль. Умеет маски.
no-port-forwarding - запретит случайно использовать опцию -L для проброса портов.
permitopen="google.com:80" - ограничивает возможности ssh -L только форвардингом порта на google.com:80

Опции можно разделять запятыми:
from="backup.example.com",no-port-forwarding,no-X11-forwarding ssh-rsa AAAAA3Nza.... LiPK== user@backup.example.com

Подробности сего действа можно вычитать в man sshd, секция "AUTHORIZED_KEYS FILE FORMAT". Там есть еще пара опций.

Комментариев нет:

Отправить комментарий