Как сделать авторизацию sudo по ssh-ключу?

Суть во в чем:
  1. Сделал юзера, дал ему sudo, запретил парольную авторизацию, запретил логин root
  2. Каждый раз при запросе sudo спрашивает пароль
  3. Если пароль убрать или сделать ненадежным (сейчас более 20 символов), это как говорят дырка, но а вообще нахрена козе баян и зачем при отказе от пароля при авторизации на сервере теперь мне нужно вводить пароль для подтверждения прав рута? Логика неконсистентная более чем полностью.


Должно быть что-то одно:
  • Или отказ от авторизации по паролям и авторизация только по ключу мера достаточная и root убирать никуда не надо
  • Или необходимо сделать консистентную авторизацию, т/е sudo должно спрашивать не пароль у пользователя, а RSA ключ у ssh клиента.


Есть еще вариант убрать полностью пароль у sudo но тогда какой вообще в нем смысл? Это по сути будет тот же root со ступенькой (необходимость каждый чих вводить через sudo)

Я решил пойти вторым путем и сделать авторизацию через ssh ключи, и использовать pam_ssh_agent_auth
Делал согласно этой инструкции:
mike.depalatis.net/ssh-agent-for-sudo-authenticati...

Результат нулевой - все равно требует пароль. Есть немаленькая вероятность, что я где-то накосячил ибо инструкция совершенно зажевана в конце - мне не совсем понятно что там и как.

Какие мысли?
  • Вопрос задан
  • 2391 просмотр
Пригласить эксперта
Ответы на вопрос 4
mikes
@mikes
если у тебя есть пользователь который постоянно работает с правами root то есть варианты
1. включить его в группу root
2. просто включить логин root и не париться на счет пользователя
3. в sudoers прописать нужные команды которые будут выполняться для него без запроса пароля.
4. использовать sudo -i и выполнять дальше от имени root вписав свой пароль всего лишь 1 раз.
Ответ написан
@aol-nnov
а как насчет
PermitRootLogin without-password
и добавить руту в authorizrd_keys свой ключ?
и не думать ни о чём?

чем это будет менее секурно, чем авторизация по ключу простого пользователя, а потом авторизация в суду с тем же ключом?
Ответ написан
Frankenstine
@Frankenstine
Сисадмин
Вообще-то ssh и sudo это совершенно разные вещи. Если хотите по ключу, то
1) впишите в /etc/hosts какое-нибудь короткое имя компу, например 127.0.0.1 me
2) положите руту ключ
3) вместо sudo -s делайте ssh root@me
Разумеется, при этом вы не сможете запускать гуёвые программы (добавьте -X).
Ответ написан
wzooff
@wzooff
сисадмин, девопс
Мои мысли и как я делаю у себя :)
Пароль для ссш нельзя - чтоб не подобрали. Выход - используем ключи (как бы ясно)
Пароль должен быть сложный, просто потому что мало ли. Сгенерили, записали, закрыли под замок.
У админа должна быть учетка не равная root, например neroot. Чтоб не догадались. Потому что боты часто ломятся под root.
А еще порт сменить...
Сделать судо без пароля :) потому что удобно.

Ну и надо понимать, что в системе должны быть разные пользователи. Тоесть как бы root - это системный, а твой neroot будет для админа. А www-data для веб сервера. И тогда будет понятно кто что сломал и зачем ты пьяный заходил на сервер (ну это если логи есть). Как то так...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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