Назад | Перейти на главную страницу

Есть ли более простой способ добавить аутентификацию с открытым ключом для новых пользователей?

Я нахожусь в трудном и болезненном процессе настройки безопасных пользователей на новом веб-сервере LEMP с Ubuntu 12.04. Изначально я собирался установить что-то вроде vsftpd или proftpd, но многие предлагали просто использовать SFTP напрямую, так что я это сделаю. В конечном итоге у меня есть один основной пользователь (которого я использую просто для предотвращения входа в систему с правами root). Я создал этого нового пользователя, сгенерировал пару открытых ключей, загрузил открытый ключ пользователям ~/.ssh каталог как authorized_key, изменил номер порта SSH, удалил логин root, а также установил passwordauthentication на НЕТ, чтобы пользователь был вынужден использовать свой ключ для входа в систему. Достаточно просто (хотя работа на ПК кажется для этого гораздо большей головной болью, чем мои аналоги OSX / NIX).

Теперь я пытаюсь создать новых пользователей (для моих веб-разработчиков), которые будут просто иметь доступ по SFTP и ограничивать их доступ только к веб-каталогу, который они оплачивают. Каждый каталог имеет следующий формат:

/var/www/sitename.com/public/

У меня сейчас начинается головная боль. Создать нового пользователя? Легко. Добавить пароль? На самом деле не нужно указывать, что мне нужны открытые / закрытые ключи (и у них никогда не будет доступа sudo), но хорошо. Однако я борюсь со следующим:

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

Любой совет?

редактировать

В настоящее время процесс таков:

#sudo mkdir -p /home/newuser/.ssh
#sudo nano /home/newuser/.ssh/authorized_key
#(copy key into single line and save)
#chown -R newuser:newuser /home/newuser
#chmod 700 /home/newuser/.ssh
#chmod 600 /home/newuser/.ssh/authorized_key

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

Вам необходимо изменить владельца файла и установить соответствующие разрешения.

$ chown -R newuser /path/to/home/.ssh
$ chmod 700 /path/to/home/.ssh
$ chmod 600 /path/to/home/.ssh/authorized_keys

Чтобы сделать этот процесс более простым, повторяемым и контролируемым, используйте систему управления конфигурацией для управления пользователями. Все широко используемые системы управления конфигурациями (puppet, chef, ansible и т. Д.) Поставляются с возможностью создания пользователей и развертывания ключей. Огромным дополнительным преимуществом использования системы управления конфигурациями является то, что вы также можете сохранить свою конфигурацию в системе контроля версий.

Как мне на самом деле хранить открытый ключ ЭТОГО нового пользователя на сервере? Если я вхожу в систему как пользователь root и просто создаю файл authorized_keys в их домашнем каталоге, у него будут права root-владельца и группы, и они не смогут войти на сервер.

Создайте его для них, используя открытый ключ, который они предоставляют вам, когда запрашивают учетную запись. Ешьте это соответствующим образом. Chmod его соответствующим образом. Готово.

/home/newuser/.ssh/authorized_key

Остерегайтесь этой опечатки :)

это `authorized_keys '. Это расстраивало меня как минимум на полчаса.