Як я можу зробити так, щоб користувач міг увійти в систему за допомогою клавіш ssh, але не паролем?


17

Я хотів би створити користувача та не мати пароля. Як і у вас, ви не можете увійти за допомогою пароля. Я хочу додати ключі до його авторизованих ключів за допомогою root. Це для моєї автоматизованої системи резервного копіювання.

Відповіді:


26

Використання passwd -d, звичайно, неправильне , принаймні, у Fedora , для будь-якого Linux-дистрибутива на основі тіньових утиліт. Якщо ви видалите пароль за допомогою passwd -d, це означає, що кожен може увійти до цього користувача (на консолі чи графіці), не надаючи пароля.

Щоб заблокувати вхід з паролем для автентифікації, запустіть , який заблокує обліковий запис, зробивши його доступним лише для кореневого користувача. Блокування виконується шляхом перетворення зашифрованого пароля у недійсну рядок (шляхом префіксації зашифрованого рядка за допомогою!).passwd -l username

Будь-яка спроба входу, локальна чи віддалена, призведе до "неправильного пароля" , тоді як вхід із відкритим ключем все ще працюватиме. Потім обліковий запис можна буде розблокувати .passwd -u username

Якщо ви хочете повністю заблокувати обліковий запис, не видаляючи його, відредагуйте /etc/passwdта встановіть /sbin/nologinабо /bin/falseв останньому полі. Це призведе до того, що "Цей обліковий запис наразі недоступний." для будь-якої спроби входу.

Будь ласка, зверніться до чоловічої сторінки passwd (1).


@guido: rvs не буде повідомлено про вашу відповідь. Для цього вам потрібно буде додати коментар до його відповіді (я це зробив). Зауважте, що читачі можуть прочитати вашу відповідь до його, ви повинні написати відповіді, які відповідають безпосередньо на питання. Молодці, щоб вказати на це! Це стосується більшості дистрибутивів Linux (тих, що використовують тіньові утиліти Linux).
Жил 'ТАК - перестань бути злим'

@Gilles: вибач, що я новачок у stackexchange; я лише наголосив на цьому трохи навряд чи тому, що він ніби пропонував користувачам налаштовувати безпарові облікові записи, і це було прийнято та позначено як корисне ...
guideo

@guido: Не хвилюйтесь, я просто пояснював, як зробити ваше попередження більш ефективним. Насправді, у таких крайніх випадках, коли відповідь небезпечно неправильна, було б доцільно запропонувати редагування, додавши попередження або виправлення (сподіваємось, ви не стикаєтесь із цими ситуаціями надто часто на сайті).
Жил 'ТАК - перестань бути злим'

@guido: Насправді, на debian Squeeze (я не знаю про lenny або etch), які відповідають НАДАЛЬНО. Він не дозволяє входити будь-кому, крім root, дозволяє авторизувати ключі, але це менше пароля, він просто не приймає пароль. Мене здивувало, що ви можете "видалити пароль", і це буде працювати так. Але він робив саме те, що я хотів, і саме те, що ця відповідь робить, і був єдиною відповіддю, тому я просто прийняв її. Ця відповідь має більше сенсу, і я прийму її, тому що я готовий робити ставку на інші дистоли, що дозволяють будь-якому користувачеві ввійти на bc без паролів на відміну від debian. У будь-якому разі хороша відповідь.

1
@ acidzombie24, @mattdn: вони могли б видалити nullok з pam.d / password-auth, якщо debian використовує pam (я так думаю, але я не є експертом з Debian). Однак клірик passwd (1) manpage говорить, що аргумент -d полягає у створенні облікових записів без паролів, тому будь-які специфічні для дистрофії спекуляції є вторинними, оскільки питання було дуже загальним.
гіда

2

Ви не просите конкретного демона SSH не приймати автентифікацію на основі пароля, а автентифікацію ключа / пароля?

Шукайте зміни в sshd_config.

Встановити

PasswordAuthentication No
PreferredAuthentications publickey,hostbased,keyboard-interactive
Protocol 2,1

Шукайте інші параметри конфігурації в man ssh_config


0

Просто не встановлюйте пароль для користувача. Якщо вже є пароль, видаліть його за допомогою passwd -l <username>.

Але все одно можна буде увійти як цей користувач - використовуючи санкціоновані_кейли, або через su або sudo з якогось привілейованого облікового запису.


1
Як вказує guideo , passwd -dобліковий запис робить без паролем, як і в, ви можете увійти, не вводячи пароль. Використовуйте passwd -lдля блокування облікового запису (вважайте, що це неможливий набір пароля).
Жиль 'ТАК - перестань бути злим'

Я додав попередження до вашого допису, оскільки це небезпечно, як є. Я залишаю за вами вирішити, чи виправити свою відповідь, чи видалити свою відповідь (якщо ви вважаєте, що рекомендації достатньо) або спростувати попередження.
Жил "ТАК - перестань бути злим"

Чому о, чому люди приймають відповідь, яка навіть не працює?
математичний

@mathepic: Це працює, на debian. Точно так, як я запитав

ви впевнені, що непривілейований користувач не suможе користувачеві?
mattdm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.