SSH vs / и пароль

У меня есть VPS, который я регистрирую на root с помощью SSH-ключей.

Теперь я создал другого пользователя user1 с помощью команды adduser, и я назначил ему пароль. Однако всякий раз, когда я пытаюсь войти на сервер через winSCP, используя user1, я все равно получаю сообщение об ошибке, которое мне нужно ввести в закрытый ключ и не могу войти с помощью пароля для пользователя 1.

Мои вопросы таковы:

Может ли пользователь иметь возможность входа через два метода? То есть, используя ключи SSH и пароль? Если SSH используется, все ли пользователи системы обязаны использовать ключи для входа?
3
задан 20 December 2017 в 22:26

3 ответа

Вы можете добавить правила для этого конкретного пользователя в файл /etc/ssh/sshd_config, например, пример в конце этого ответа. Но прежде чем быть предупрежденным, разрешить вход в пароли через SSH несколько небезопасно с точки зрения попыток грубой силы, которые могут быть доступны серверу. Таким образом, самый безопасный способ - создать еще один SSH-ключ на VPS или другой Linux-машине со следующей строкой. лучше всего переключиться на user1 на этом компьютере, прежде чем вы начнете использовать следующие команды с su - user1. (Примечание: вы должны перейти в каталог, в котором вы хотите создать пару ключей, поскольку -f имеет трудное время с путями):

ssh-keygen -t rsa -C "user1_email@example.com" -f user1_key

Пользователь может позже изменить парольную фразу скопировав свою пару ключей на короткое время на VPS или на другой Linux-машине с помощью:

ssh-keygen -p -f user1_key

Затем дайте закрытому ключу (user1_key) пользователю1 и поместите открытый ключ (user1_key.pub) в домашнем каталоге пользователей в разделе ~/.ssh/authorized_keys на VPS, затем измените право собственности на user1 или сделайте su - user1 перед тем, как это сделать, чтобы предотвратить нежелательное неправильное владение внутри домашнего каталога user1.

mkdir -p /home/user1/.ssh
cat user1_key.pub >> /home/user1/.ssh/authorized_keys
# The next line is only needed if you have done the two above as 'root'
chown -Rv user1:user1 /home/user1/.ssh

Процесс создания пары ключей можно также выполнить в Windows с помощью WinScp, см. Здесь для справки. Затем вы можете убедиться, что для открытого и закрытого ключей установлены права доступа, которые 0600 для личного ключа пользователя и 0644 для открытого ключа пользователя. (Примечание: копирование ключа на USB-накопитель или диск с форматированным окном, позволяющий ключу потерять установленные разрешения, поэтому вы хотите дважды проверить это.

Если вы действительно хотите, чтобы этот пользователь мог зарегистрировать через пароль вы можете изменить следующую строку в /etc/ssh/sshd_config:

AllowUsers mainuser user1

И добавить в конце следующее:

Только для включения пароля:

[ f5]

Для включения обоих:

Match User user1
    PubkeyAuthentication yes
    PasswordAuthentication yes

Для включения только ssh вы можете удалить эту часть или установить ее:

Match User user1
    PubkeyAuthentication yes
    PasswordAuthentication no

Больше материала для чтения, который может не обязательно связанный с вопросом, но для SSH вообще вы можете найти здесь , просто имейте в виду, что некоторая информация задана для цифрового океана, но все же полезна. См. также man-страницу для команды ssh-keygen и manpage для команды ssh.

Благодаря @ Eliah-Kagan для корректуры и предложения исправлений и дополнений.

4
ответ дан 22 May 2018 в 16:53

Вы можете добавить правила для этого конкретного пользователя в файл /etc/ssh/sshd_config, например, пример в конце этого ответа. Но прежде чем быть предупрежденным, разрешить вход в пароли через SSH несколько небезопасно с точки зрения попыток грубой силы, которые могут быть доступны серверу. Таким образом, самый безопасный способ - создать еще один SSH-ключ на VPS или другой Linux-машине со следующей строкой. лучше всего переключиться на user1 на этом компьютере, прежде чем вы начнете использовать следующие команды с su - user1. (Примечание: вы должны перейти в каталог, в котором вы хотите создать пару ключей, поскольку -f имеет трудное время с путями):

ssh-keygen -t rsa -C "user1_email@example.com" -f user1_key

Пользователь может позже изменить парольную фразу скопировав свою пару ключей на короткое время на VPS или на другой Linux-машине с помощью:

ssh-keygen -p -f user1_key

Затем дайте закрытому ключу (user1_key) пользователю1 и поместите открытый ключ (user1_key.pub) в домашнем каталоге пользователей в разделе ~/.ssh/authorized_keys на VPS, затем измените право собственности на user1 или сделайте su - user1 перед тем, как это сделать, чтобы предотвратить нежелательное неправильное владение внутри домашнего каталога user1.

mkdir -p /home/user1/.ssh cat user1_key.pub >> /home/user1/.ssh/authorized_keys # The next line is only needed if you have done the two above as 'root' chown -Rv user1:user1 /home/user1/.ssh

Процесс создания пары ключей можно также выполнить в Windows с помощью WinScp, см. Здесь для справки. Затем вы можете убедиться, что для открытого и закрытого ключей установлены права доступа, которые 0600 для личного ключа пользователя и 0644 для открытого ключа пользователя. (Примечание: копирование ключа на USB-накопитель или диск с форматированным окном, позволяющий ключу потерять установленные разрешения, поэтому вы хотите дважды проверить это.

Если вы действительно хотите, чтобы этот пользователь мог зарегистрировать через пароль вы можете изменить следующую строку в /etc/ssh/sshd_config:

AllowUsers mainuser user1

И добавить в конце следующее:

Только для включения пароля:

Match User user1 PubkeyAuthentication no PasswordAuthentication yes

Для включения обоих:

Match User user1 PubkeyAuthentication yes PasswordAuthentication yes

Для включения только ssh вы можете удалить эту часть или установить ее:

Match User user1 PubkeyAuthentication yes PasswordAuthentication no

Больше материала для чтения, который может не обязательно связанный с вопросом, но для SSH вообще вы можете найти здесь , просто имейте в виду, что некоторая информация задана для цифрового океана, но все же полезна. См. также man-страницу для команды ssh-keygen и manpage для команды ssh.

Благодаря @ Eliah-Kagan для корректуры и предложения исправлений и дополнений.

4
ответ дан 18 July 2018 в 00:47

Вы можете добавить правила для этого конкретного пользователя в файл /etc/ssh/sshd_config, например, пример в конце этого ответа. Но прежде чем быть предупрежденным, разрешить вход в пароли через SSH несколько небезопасно с точки зрения попыток грубой силы, которые могут быть доступны серверу. Таким образом, самый безопасный способ - создать еще один SSH-ключ на VPS или другой Linux-машине со следующей строкой. лучше всего переключиться на user1 на этом компьютере, прежде чем вы начнете использовать следующие команды с su - user1. (Примечание: вы должны перейти в каталог, в котором вы хотите создать пару ключей, поскольку -f имеет трудное время с путями):

ssh-keygen -t rsa -C "user1_email@example.com" -f user1_key

Пользователь может позже изменить парольную фразу скопировав свою пару ключей на короткое время на VPS или на другой Linux-машине с помощью:

ssh-keygen -p -f user1_key

Затем дайте закрытому ключу (user1_key) пользователю1 и поместите открытый ключ (user1_key.pub) в домашнем каталоге пользователей в разделе ~/.ssh/authorized_keys на VPS, затем измените право собственности на user1 или сделайте su - user1 перед тем, как это сделать, чтобы предотвратить нежелательное неправильное владение внутри домашнего каталога user1.

mkdir -p /home/user1/.ssh cat user1_key.pub >> /home/user1/.ssh/authorized_keys # The next line is only needed if you have done the two above as 'root' chown -Rv user1:user1 /home/user1/.ssh

Процесс создания пары ключей можно также выполнить в Windows с помощью WinScp, см. Здесь для справки. Затем вы можете убедиться, что для открытого и закрытого ключей установлены права доступа, которые 0600 для личного ключа пользователя и 0644 для открытого ключа пользователя. (Примечание: копирование ключа на USB-накопитель или диск с форматированным окном, позволяющий ключу потерять установленные разрешения, поэтому вы хотите дважды проверить это.

Если вы действительно хотите, чтобы этот пользователь мог зарегистрировать через пароль вы можете изменить следующую строку в /etc/ssh/sshd_config:

AllowUsers mainuser user1

И добавить в конце следующее:

Только для включения пароля:

Match User user1 PubkeyAuthentication no PasswordAuthentication yes

Для включения обоих:

Match User user1 PubkeyAuthentication yes PasswordAuthentication yes

Для включения только ssh вы можете удалить эту часть или установить ее:

Match User user1 PubkeyAuthentication yes PasswordAuthentication no

Больше материала для чтения, который может не обязательно связанный с вопросом, но для SSH вообще вы можете найти здесь , просто имейте в виду, что некоторая информация задана для цифрового океана, но все же полезна. См. также man-страницу для команды ssh-keygen и manpage для команды ssh.

Благодаря @ Eliah-Kagan для корректуры и предложения исправлений и дополнений.

4
ответ дан 24 July 2018 в 17:17

Другие вопросы по тегам:

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