У меня есть имя пользователя и ключ SSH для (гипотетического) парня, и мне нужно предоставить ему доступ администратора к серверу Linux (Ubuntu).
Я хочу, чтобы он мог войти в систему через SSH, а затем сам установить свой пароль через безопасное соединение, вместо того, чтобы передавать пароль.
Я знаю, как продлить срок действия пароля и заставить его сбросить его при первом входе в систему. Но это не сработает, если у него нет некоторые пароль уже, который я затем должен сказать ему.
Я подумал о том, чтобы сделать пароль пустым - SSH не разрешит вход в систему, но тогда любой может su
в пользователя.
Мой вопрос: есть ли какая-нибудь лучшая практика для создания учетных записей таким образом? Или установка пароля по умолчанию неизбежна?
У вас есть его открытый ключ SSH? Положи это в .ssh/authorized_keys
в его домашнем каталоге. Как только вы это сделаете (а разрешения достаточно ограничены - SSH с этим не справляется), он сможет войти в систему, вообще не нуждаясь в пароле ... и он ему никогда не понадобится.
Самое приятное то, что его открытый ключ нечувствителен, поэтому его можно передавать по электронной почте или в чате, а его закрытый ключ никогда не покидает его компьютер.
Просто поместите текстовый файл с паролем в дом пользователя с правами 600. Пользователь входит в систему с ключом, меняет пароль и удаляет файл. С помощью сценария с установленным битом suid вы даже можете создать что-то вроде passwd <textfile, не давая пользователю права читать файл (права будут 060 с group = root)
Установка пароля по умолчанию неизбежна. Моя процедура будет такой:
1) сгенерируйте безопасный случайный пароль (индивидуальный для каждого пользователя). Я использую генератор паролей в настройках учетной записи OSX, но вы можете использовать такой веб-сайт, как http://strongpasswordgenerator.com
2) Надежно сообщите им пароль, например лично или через http://www.privnote.com
3) принудительно выполнить сброс при первом входе в систему, поскольку вы уже знаете, как это сделать