Я хочу отключить доступ для ssh-клиентов с помощью пароля и разрешить только авторизацию ssh с помощью SSH-ключей. Как отключить аутентификацию паролей для SSH в операционных системах Linux?
Во-первых, вам нужно настроить обычную учетную запись пользователя. Затем настройте SSH-ключи для входа. После того, как вы настроили SSH-ключи, вам необходимо отключить пароль для всех пользователей, включая root. В этом руководстве показано:
Как создать ключ ssh и отключить аутентификацию пароля в системе на базе Linux или Unix
В целях демонстрации я использую Ubuntu Linux
Шаг 1 – Вход на удаленный сервер
Используйте команду ssh или клиент вроде Putty:
Шаг 2 – Создание нового пользовательского аккаунта
Введите следующую команду в системе на базе Linux, чтобы создать нового пользователя с именем vivek:
Установите пользовательский пароль:
Примеры возможных выводов данных:
passwd: password updated successfully
Добавьте пользователя во вспомогательную/вторичную группу sudo (Ubuntu/Debian) или wheel (RHEL/CentOS):
ИЛИ для RHEL/CentOS Linux:
Вышеупомянутая команда позволяет людям в группе wheel или sudo запускать все команды. Проверьте это:
Примеры возможных выводов данных:
Выйти из оболочки входа:
Шаг 3 – Установите ключи ssh на удаленную машину
Вся команда должна выполняться на рабочей станции local/desktop/macos/freebsd . Создайте пары ключей:
Установите открытый ключ на удаленном сервере:
Примеры возможных выводов данных:
Проверьте ssh keybase вход:
Примеры возможных выводов данных:
Чтобы запустить команду как администратор (пользователь «root»), используйте команду «sudo {command} ». Например:
Чтобы получить корневую оболочку, введите:
Шаг 4 – Отключите вход для root, а также вход на основе пароля
Отредактируйте файл /etc/ssh/sshd_config file и введите:
Найдите ChallengeResponseAuthentication и выставьте на no :
ChallengeResponseAuthentication no
Найдите PasswordAuthentication и выставьте на no :
Найдите UsePAM и выставьте его на no :
Найдите PermitRootLogin и выставьте его на no :
Сохраните изменения и закройте файл. Перезагрузите ssh сервер:
или
или используйте следующее на RHEL/CentOS Linux
Шаг 5 – Проверка
Попробуйте войти в систему, как пользователь root :
Попробуйте войти только с паролем:
И, наконец, вы справились. Теперь аутентификация пароля для SSH отключена, включая пользователя root. Теперь ваш сервер будет принимать только вход на основе ключа, и пользователь root не сможет войти с паролем.
Это интересно:
Во-первых, вам нужно настроить обычную учетную запись пользователя. Затем настройте SSH-ключи для входа. После того, как вы настроили SSH-ключи, вам необходимо отключить пароль для всех пользователей, включая root. В этом руководстве показано:
Как создать ключ ssh и отключить аутентификацию пароля в системе на базе Linux или Unix
В целях демонстрации я использую Ubuntu Linux
Шаг 1 – Вход на удаленный сервер
Используйте команду ssh или клиент вроде Putty:
Код:
$ ssh root@server-ip-here
$ ssh root@server1.cyberciti.biz
Введите следующую команду в системе на базе Linux, чтобы создать нового пользователя с именем vivek:
Код:
# useradd -m -s /bin/bash vivek
Код:
# passwd vivek
Код:
Enter new UNIX password:
Retype new UNIX password:
Добавьте пользователя во вспомогательную/вторичную группу sudo (Ubuntu/Debian) или wheel (RHEL/CentOS):
Код:
# usermod -aG sudo vivek
Код:
# usermod -aG wheel vivek
Код:
# su - vivek
$ id vivek
Код:
uid=1000(vivek) gid=1000(vivek) groups=1000(vivek),27(sudo)
Код:
$ logout
Вся команда должна выполняться на рабочей станции 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 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:~$
Код:
$ sudo ls /root/
Код:
$ sudo –s
Отредактируйте файл /etc/ssh/sshd_config file и введите:
Код:
$ sudo vi /etc/ssh/sshd_config
ChallengeResponseAuthentication no
Код:
Код:
PasswordAuthentication no
Код:
UsePAM no
Код:
PermitRootLogin no
Код:
# /etc/init.d/ssh reload
Код:
$ sudo systemctl reload ssh
Код:
# /etc/init.d/sshd reload
Попробуйте войти в систему, как пользователь root :
Код:
$ ssh root@server1.cyberciti.biz
Permission denied (publickey).
Код:
$ ssh vivek@server1.cyberciti.biz -o PubkeyAuthentication=no
Permission denied (publickey).
Это интересно: