У меня есть VPS, который я регистрирую на root с помощью SSH-ключей.
Теперь я создал другого пользователя user1 с помощью команды adduser, и я назначил ему пароль. Однако всякий раз, когда я пытаюсь войти на сервер через winSCP, используя user1, я все равно получаю сообщение об ошибке, которое мне нужно ввести в закрытый ключ и не могу войти с помощью пароля для пользователя 1.
Мои вопросы таковы:
Может ли пользователь иметь возможность входа через два метода? То есть, используя ключи SSH и пароль? Если SSH используется, все ли пользователи системы обязаны использовать ключи для входа?Вы можете добавить правила для этого конкретного пользователя в файл /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 для корректуры и предложения исправлений и дополнений.
Вы можете добавить правила для этого конкретного пользователя в файл /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 для корректуры и предложения исправлений и дополнений.
Вы можете добавить правила для этого конкретного пользователя в файл /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 для корректуры и предложения исправлений и дополнений.