Добавить пользователя без пароля, но с SSH и открытым ключом

33

Я хочу добавить в Red Hat Linux пользователя, который не будет использовать пароль для входа в систему, а вместо этого использует открытый ключ для ssh. Это будет в командной строке.

user119776
источник
useradd --password-disable и adduser --password отключить. Я посмотрел на варианты для обоих и не вижу отключение пароля как вариант для обоих.
user119776
Знаете ли вы, как настроить вход по ssh-ключу в целом? Я думаю, что учетная запись просто не должна быть заблокирована, что может означать, что активен какой-то пароль. Это может быть какой-то длинный пароль, который на самом деле никто не знает.
Мика Йодер
У меня есть ключ и я знаю, что мне нужно создать папку в каталоге пользователя и вставить туда публичную часть. Я могу попробовать это, но подумал, что мне нужно отключить пароль пользователя тоже.
user119776
Вместо того, чтобы делать еще один пост, показывающий, как добавить пользователя, я согласен с Ламбертом. Вы должны сосредоточиться именно на той части задачи, с которой у вас возникли проблемы. Если вы не знаете, как добавить пользователя, начните с малого и продолжайте свой путь. Я считаю, что вам нужно только создать пользователя, не устанавливать пароль и поместить его ключ в /home/username/.ssh/authorized_keys.
Баазигар

Ответы:

37

Начните с создания пользователя:

useradd -m -d /home/username -s /bin/bash username

Создайте пару ключей от клиента, от которого вы будете использовать ssh:

ssh-keygen -t dsa

Скопируйте открытый ключ /home/username/.ssh/id_dsa.pubна хост RedHat в/home/username/.ssh/authorized_keys

Установите правильные разрешения для файлов на хосте RedHat:

chown -R username:username /home/username/.ssh
chmod 700 /home/username/.ssh
chmod 600 /home/username/.ssh/authorized_keys

Убедитесь, что аутентификация с открытым ключом включена на хосте RedHat:

grep  PubkeyAuthentication /etc/ssh/sshd_config
#should output:
PubkeyAuthentication yes

Если нет, измените эту директиву на yes и перезапустите sshdслужбу на хосте RedHat.

С клиента начните sshсоединение:

ssh username@redhathost

Он должен автоматически искать ключ id_dsaв ~/.ssh/. Вы также можете указать файл идентификации, используя:

ssh -i ~/.ssh/id_dsa username@redhathost
Ламберт
источник
3
На самом деле я не забыл про блокировку пароля. Поскольку я просто не установил его, пароль вновь созданного пользователя автоматически блокируется.
Ламберт
3
используйте RSA вместо DSA
sg
вы понимаете, что команда "ssh-keygen -t dsa" создаст ключи для текущего пользователя, она может заменить ваши собственные ключи
yarun может
15

В Ubuntu вы можете добавить пользователя с помощью:

adduser --disabled-password <username>

Затем создайте .ssh/authorized_keysфайл в их домашнем каталоге с их открытым ключом.

Mitar
источник
7

Вы можете использовать:

usermod --lock <username>

Со страницы руководства:

Заблокируйте пароль пользователя. Это ставит '!' перед зашифрованным паролем, эффективно отключая пароль. Вы не можете использовать эту опцию с -p или -U. Примечание: если вы хотите заблокировать учетную запись (не только доступ с паролем), вы также должны установить EXPIRE_DATE в 1.

Пол Митчелл
источник