Password or no password
Jun. 7th, 2025 01:31 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Нашел вот в дистрибутиве пакет libpam-ssh-agent-auth и вот теперь думаю, а повысится ли безопасность моего сервера, если я его буду использовать.
Работает эта штука так - прописывается в /etc/pam.d/sudo и аутентифицирует пользователя желающего сделать sudo, если у него имеется работающий (отфорварженный) ssh_agent с доверенными ключами.
Какому файлу доверять - прописываается в /etc/pam.d/sudo. Можно прописать свой рабочий ~/.ssh/authorized_keys, можно для желающих пользоваться sudo завести отдельный файлик где-нибудь в /etc/.
Оба подхода имеют свои преимущества. Первый - если у меня утек какой-то из приватных ключй ssh, например утерян ноутбук или смартфон, я быстрее вычищу скомпрометированный ключ если он будет лежать в приватном месте. Второй - злоумышленнику недостаточно добраться до моего аккаунта, нужно уже получить рута чтобы прописать свои ключи в этот файлик.
Но главное вообще-то не в этом. Главное в том, что если у нас sudo с паролем, то вообще говоря оно уязывимо к установке keylogger, а вот ssh-вый агент использует криптографию с открытыми ключами, и поэтому не боится перехвата чего либо на стороне сервера.
Но у пароля есть крайне полезное свойство - если на локальной и удаленной машине пароли разные, то когда юзер перепутает окно и наберет не на той машине, пароль не подойдет и команда не выполнится. Вероятность перепутать окно, несмотря на то что prompt-ы разноветные и содержат имя машины - намного выше вероятности хакерской атаки.
Хотя вот на работе жил я с NOPASSWD в sudoers (там было слишком много серверов и контейнеров, чтобы везде пароли расставлять) и ничего.
P.S. Соберетесь настраивать у себя, не забудьте прописать в /etc/sudoers, что environment кирпичом не чистят переменную SSH_AUTH_SOCK из environment удалять не надо. А то не найдет вашего агента.
X-Post to LJ