Статья Как отключить вход по ssh паролю на Linux для повышения безопасности

Я хочу отключить доступ для ssh-клиентов с помощью пароля и разрешить только авторизацию ssh с помощью SSH-ключей. Как отключить аутентификацию паролей для SSH в операционных системах Linux?

Во-первых, вам нужно настроить обычную учетную запись пользователя. Затем настройте SSH-ключи для входа. После того, как вы настроили SSH-ключи, вам необходимо отключить пароль для всех пользователей, включая root. В этом руководстве показано:

Как создать ключ ssh и отключить аутентификацию пароля в системе на базе Linux или Unix

29048


В целях демонстрации я использую Ubuntu Linux

Шаг 1 – Вход на удаленный сервер

Используйте команду ssh или клиент вроде Putty:
Код:
$ ssh root@server-ip-here
$ ssh root@server1.cyberciti.biz
Шаг 2 – Создание нового пользовательского аккаунта

Введите следующую команду в системе на базе Linux, чтобы создать нового пользователя с именем vivek:
Код:
# useradd -m -s /bin/bash vivek
Установите пользовательский пароль:
Код:
# passwd vivek
Примеры возможных выводов данных:
Код:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Добавьте пользователя во вспомогательную/вторичную группу sudo (Ubuntu/Debian) или wheel (RHEL/CentOS):
Код:
# usermod -aG sudo vivek
ИЛИ для RHEL/CentOS Linux:
Код:
# usermod -aG wheel vivek
Вышеупомянутая команда позволяет людям в группе wheel или sudo запускать все команды. Проверьте это:
Код:
# su - vivek
$ id vivek
Примеры возможных выводов данных:
Код:
uid=1000(vivek) gid=1000(vivek) groups=1000(vivek),27(sudo)
Выйти из оболочки входа:
Код:
$ logout
Шаг 3 – Установите ключи ssh на удаленную машину

Вся команда должна выполняться на рабочей станции local/desktop/macos/freebsd . Создайте пары ключей:
Код:
$ ssh-keygen -t rsa
Установите открытый ключ на удаленном сервере:
Код:
$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub vivek@server1.cyberciti.biz
Примеры возможных выводов данных:
Код:
/usr/local/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/vivek/.ssh/id_rsa.pub"
/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/local/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
vivek@ln.cbzc01's password:
Number of key(s) added:        1
Now try logging into the machine, with:   "ssh 'vivek@server1.cyberciti.biz'"
and check to make sure that only the key(s) you wanted were added.
Проверьте ssh keybase вход:
Код:
$ ssh vivek@server1.cyberciti.biz
Примеры возможных выводов данных:
Код:
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.8.6-x86_64-linode78 x86_64)
* Documentation:  https://help.ubuntu.com
* Management:     https://landscape.canonical.com
* Support:        https://www.ubuntu.com/support/plans-and-pricing
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.
vivek@ubuntu:~$
Чтобы запустить команду как администратор (пользователь «root»), используйте команду «sudo {command} ». Например:
Код:
$ sudo ls /root/
Чтобы получить корневую оболочку, введите:
Код:
$ sudo –s
Шаг 4 – Отключите вход для root, а также вход на основе пароля

Отредактируйте файл /etc/ssh/sshd_config file и введите:
Код:
$ sudo vi /etc/ssh/sshd_config
Найдите ChallengeResponseAuthentication и выставьте на no :
ChallengeResponseAuthentication no
Код:
Найдите PasswordAuthentication и выставьте на no :
Код:
PasswordAuthentication no
Найдите UsePAM и выставьте его на no :
Код:
UsePAM no
Найдите PermitRootLogin и выставьте его на no :
Код:
PermitRootLogin no
Сохраните изменения и закройте файл. Перезагрузите ssh сервер:
Код:
# /etc/init.d/ssh reload
или
Код:
$ sudo systemctl reload ssh
или используйте следующее на RHEL/CentOS Linux
Код:
# /etc/init.d/sshd reload
Шаг 5 – Проверка

Попробуйте войти в систему, как пользователь root :
Код:
$ ssh root@server1.cyberciti.biz
Permission denied (publickey).
Попробуйте войти только с паролем:
Код:
$ ssh vivek@server1.cyberciti.biz -o PubkeyAuthentication=no
Permission denied (publickey).
И, наконец, вы справились. Теперь аутентификация пароля для SSH отключена, включая пользователя root. Теперь ваш сервер будет принимать только вход на основе ключа, и пользователь root не сможет войти с паролем.

Перевод: Анна Давыдова
Источник:

Это интересно:
 
  • Нравится
Реакции: investor и yr1

yr1

Green Team
10.08.2018
42
3
BIT
0
Подключаюсь к графическому интерфейсу по vnc
Что б изменить все настройки ssh, под root из консоли ввожу etc/ssh/sshd_config
Выдает bash: etc/ssh/sshd config: Отказано в доступе

Подскажите под какими правами нужно зайти или правильнее выполнить команду что б поменять настройки в этом файле?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!