SSH против / и пароль

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

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

У меня следующие вопросы:

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

1 ответ

Вы можете добавить правила для этого конкретного пользователя в файл /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-накопитель или диск в формате Windows позволяет ключу потерять свои установленные разрешения, поэтому вы должны дважды проверить это.

Если вы действительно хотите, чтобы этот пользователь мог войти в систему с помощью пароля вы можете изменить следующую строку в /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 вы можете найти здесь , просто имейте в виду, что некоторая информация указана для digital-океана, но все еще полезна. Смотрите также справочную страницу для команды ssh-keygen и man-страница для команды ssh .

Спасибо @ Eliah-Kagan за корректуру и предложение исправлений и дополнений.

4
ответ дан 20 December 2017 в 21:26

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

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